C#中的BitConverter.ToUInt16()方法用于返回从字节数组中指定位置的两个字节转换而来的16位无符号整数。
public static ushort ToUInt16 (byte[] val, int begnIndex);
在上面,val是字节数组,而begnIndex是val中的开始位置。
现在让我们看一个例子-
using System; public class Demo { public static void Main() { byte[] arr = { 10, 20, 30, 40, 50}; int count = arr.Length; Console.Write("Byte Array... "); for (int i = 0; i < count; i++) { Console.Write("\n"+arr[i]); } Console.WriteLine("\n\nByte Array (String representation) = {0} ", BitConverter.ToString(arr)); for (int i = 1; i < arr.Length - 1; i = i + 2) { ushort res = BitConverter.ToUInt16(arr, i); Console.WriteLine("\nValue = "+arr[i]); Console.WriteLine("Result = "+res); } } }
输出结果
Byte Array... 10 20 30 40 50 Byte Array (String representation) = 0A-14-1E-28-32 Value = 20 Result = 7700 Value = 40 Result = 12840
现在让我们来看另一个例子-
using System; public class Demo { public static void Main() { byte[] arr = { 0, 0, 1, 3, 5, 7, 10, 16, 20, 34, 42, 55, 66, 75}; int count = arr.Length; Console.Write("Byte Array... "); for (int i = 0; i < count; i++) { Console.Write("\n"+arr[i]); } Console.WriteLine("\n\nByte Array (String representation) = {0} ", BitConverter.ToString(arr)); for (int i = 1; i < arr.Length - 1; i = i + 2) { ushort res = BitConverter.ToUInt16(arr, i); Console.WriteLine("\nValue = "+arr[i]); Console.WriteLine("Result = "+res); } } }
输出结果
Byte Array... 0 0 1 3 5 7 10 16 20 34 42 55 66 75 Byte Array (String representation) = 00-00-01-03-05-07-0A-10-14-22-2A-37-42-4B Value = 0 Result = 256 Value = 3 Result = 1283 Value = 7 Result = 2567 Value = 16 Result = 5136 Value = 34 Result = 10786 Value = 55 Result = 16951