將基底資料型別與位元組陣列相互轉換
1. BitConverter.ToSingle 方法
public static float ToSingle (
byte[] value,
int startIndex
)
下列程式碼範例會以 ToSingle 方法,將 Byte 陣列的元素轉換為 Single 值。// Example of the BitConverter.ToSingle method.using System;class BytesToSingleDemo{const string formatter = "{0,5}{1,17}{2,18:E7}";// Convert four byte array elements to a float and display it.public static void BAToSingle( byte[ ] bytes, int index ){float value = BitConverter.ToSingle( bytes, index );Console.WriteLine( formatter, index,BitConverter.ToString( bytes, index, 4 ), value );}// Display a byte array, using multiple lines if necessary.public static void WriteMultiLineByteArray( byte[ ] bytes ){const int rowSize = 20;int iter;Console.WriteLine( "initial byte array" );Console.WriteLine( "------------------" );for( iter = 0; iter < bytes.Length - rowSize; iter += rowSize ){Console.Write(BitConverter.ToString( bytes, iter, rowSize ) );Console.WriteLine( "-" );}Console.WriteLine( BitConverter.ToString( bytes, iter ) );Console.WriteLine( );}public static void Main( ){byte[ ] byteArray = {0, 0, 0, 0, 128, 63, 0, 0, 112, 65,0, 255, 127, 71, 0, 0, 128, 59, 0, 0,128, 47, 73, 70, 131, 5, 75, 6, 158, 63,77, 6, 158, 63, 80, 6, 158, 63, 30, 55,190, 121, 255, 255, 127, 255, 255, 127, 127, 1,0, 0, 0, 192, 255, 0, 0, 128, 255, 0,0, 128, 127 };Console.WriteLine("This example of the BitConverter.ToSingle( byte( ), " +"int ) \nmethod generates the following output. It " +"converts elements \nof a byte array to float values.\n" );WriteMultiLineByteArray( byteArray );Console.WriteLine( formatter, "index", "array elements","float" );Console.WriteLine( formatter, "-----", "--------------","-----" );// Convert byte array elements to float values.BAToSingle( byteArray, 0 );BAToSingle( byteArray, 2 );BAToSingle( byteArray, 6 );BAToSingle( byteArray, 10 );BAToSingle( byteArray, 14 );BAToSingle( byteArray, 18 );BAToSingle( byteArray, 22 );BAToSingle( byteArray, 26 );BAToSingle( byteArray, 30 );BAToSingle( byteArray, 34 );BAToSingle( byteArray, 38 );BAToSingle( byteArray, 42 );BAToSingle( byteArray, 45 );BAToSingle( byteArray, 49 );BAToSingle( byteArray, 51 );BAToSingle( byteArray, 55 );BAToSingle( byteArray, 59 );}}/*This example of the BitConverter.ToSingle( byte( ), int )method generates the following output. It converts elementsof a byte array to float values.initial byte array------------------00-00-00-00-80-3F-00-00-70-41-00-FF-7F-47-00-00-80-3B-00-00-80-2F-49-46-83-05-4B-06-9E-3F-4D-06-9E-3F-50-06-9E-3F-1E-37-BE-79-FF-FF-7F-FF-FF-7F-7F-01-00-00-00-C0-FF-00-00-80-FF-00-00-80-7Findex array elements float----- -------------- -----0 00-00-00-00 0.0000000E+0002 00-00-80-3F 1.0000000E+0006 00-00-70-41 1.5000000E+00110 00-FF-7F-47 6.5535000E+00414 00-00-80-3B 3.9062500E-00318 00-00-80-2F 2.3283064E-01022 49-46-83-05 1.2345000E-03526 4B-06-9E-3F 1.2345671E+00030 4D-06-9E-3F 1.2345673E+00034 50-06-9E-3F 1.2345676E+00038 1E-37-BE-79 1.2345679E+03542 FF-FF-7F-FF -3.4028235E+03845 FF-FF-7F-7F 3.4028235E+03849 01-00-00-00 1.4012985E-04551 00-00-C0-FF NaN55 00-00-80-FF -Infinity59 00-00-80-7F Infinity*/
2. 下列程式碼範例說明數個 BitConverter 類別方法的使用方式。
// Example of BitConverter class methods.using System;class BitConverterDemo{public static void Main( )
{const string formatter = "{0,25}{1,30}";
double aDoubl = 0.1111111111111111111; float aSingl = 0.1111111111111111111F; long aLong = 1111111111111111111; int anInt = 1111111111; short aShort = 11111;char aChar = '*';
bool aBool = true;
Console.WriteLine(
"This example of methods of the BitConverter class" + "\ngenerates the following output.\n" );Console.WriteLine( formatter, "argument", "byte array" );
Console.WriteLine( formatter, "--------", "----------" );
// Convert values to Byte arrays and display them.Console.WriteLine( formatter, aDoubl,
BitConverter.ToString( BitConverter.GetBytes( aDoubl ) ) );
Console.WriteLine( formatter, aSingl,
BitConverter.ToString( BitConverter.GetBytes( aSingl ) ) );
Console.WriteLine( formatter, aLong,
BitConverter.ToString( BitConverter.GetBytes( aLong ) ) );
Console.WriteLine( formatter, anInt,
BitConverter.ToString( BitConverter.GetBytes( anInt ) ) );
Console.WriteLine( formatter, aShort,
BitConverter.ToString( BitConverter.GetBytes( aShort ) ) );
Console.WriteLine( formatter, aChar,
BitConverter.ToString( BitConverter.GetBytes( aChar ) ) );
Console.WriteLine( formatter, aBool,
BitConverter.ToString( BitConverter.GetBytes( aBool ) ) );
}
}
/*This example of methods of the BitConverter classgenerates the following output. argument byte array -------- ---------- 0.111111111111111 1C-C7-71-1C-C7-71-BC-3F 0.1111111 39-8E-E3-3D 1111111111111111111 C7-71-C4-2B-AB-75-6B-0F 1111111111 C7-35-3A-42 11111 67-2B * 2A-00 True 01*/
資料來源: http://msdn.microsoft.com/zh-tw/library/3kftcaf9(v=vs.80)
沒有留言:
張貼留言