说明:C# BitConverter 字节数组byte[ ] 转各种数据类型用法示例

1.ToBoolean(byte[] value, int startIndex):将指定字节数组中从指定索引开始的两个字节转换为布尔值。

byte[] bytes = { 1, 0 };
bool result = BitConverter.ToBoolean(bytes, 0); // 输出:true

2.ToChar(byte[] value, int startIndex):将指定字节数组中从指定索引开始的两个字节转换为Unicode字符。

byte[] bytes = { 65, 66 };
char result = BitConverter.ToChar(bytes, 0); // 输出:'A'

3.ToInt16(byte[] value, int startIndex):将指定字节数组中从指定索引开始的两个字节转换为16位有符号整数。

byte[] bytes = { 0xFF, 0x7F };
short result = BitConverter.ToInt16(bytes, 0); // 输出:-129

4.ToInt32(byte[] value, int startIndex):将指定字节数组中从指定索引开始的四个字节转换为32位有符号整数。

byte[] bytes = { 0xFF, 0xFF, 0xFF, 0x7F };
int result = BitConverter.ToInt32(bytes, 0); // 输出:-1

5.ToInt64(byte[] value, int startIndex):将指定字节数组中从指定索引开始的八个字节转换为64位有符号整数。

byte[] bytes = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F };
long result = BitConverter.ToInt64(bytes, 0); // 输出:-1

6.ToSingle(byte[] value, int startIndex):将指定字节数组中从指定索引开始的四个字节转换为单精度浮点数。

byte[] bytes = { 0x41, 0x48, 0x00, 0x00 };
float result = BitConverter.ToSingle(bytes, 0); // 输出:12.5

7.ToDouble(byte[] value, int startIndex):将指定字节数组中从指定索引开始的八个字节转换为双精度浮点数。

byte[] bytes = { 0x40, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
double result = BitConverter.ToDouble(bytes, 0); // 输出:10.0

8.ToString(byte[] value, int startIndex, int length):将指定字节数组中从指定索引开始的指定长度的字节转换为对应16进制字符串。

byte[] bytes = { 72, 101, 108, 108, 111 };
string result = BitConverter.ToString(bytes, 0, 5); // 输出:"48-65-6C-6C-6F"

9.将字节数组转换为16位无符号整数:

byte[] bytes = { 0x01, 0x02 };
ushort value = BitConverter.ToUInt16(bytes, 0);
Console.WriteLine(value); // 输出:258

10.将16位无符号整数转换为字节数组:

ushort value = 258;
byte[] bytes = BitConverter.GetBytes(value);
Console.WriteLine(BitConverter.ToString(bytes)); // 输出:01-02

11.将字节数组转换为字符串表示:

byte[] bytes = { 0x41,0x42, 0x43 };
string str = BitConverter.ToString(bytes);
Console.WriteLine(str); // 输出:41-42-4312.

12.将字符串表示转换为字节数组:

string str = "41-42-43";
string[] strArray = str.Split('-');
byte[] bytes = new byte[strArray.Length];
for (int i = 0; i < strArray.Length; i++)
{
    bytes[i] = Convert.ToByte(strArray[i], 16);
}
Console.WriteLine(BitConverter.ToString(bytes)); // 输出:41-42-43

13.将其他基本数据类型转换为字节数组:

int value = 123;
byte[] bytes = BitConverter.GetBytes(value);
Console.WriteLine(BitConverter.ToString(bytes)); // 输出:7B-00-00-00

14.将字节数组转换为其他基本数据类型:

byte[] bytes = { 0x7B, 0x00, 0x00, 0x00 };
int value = BitConverter.ToInt32(bytes, 0);
Console.WriteLine(value); // 输出:123
01-19 14:40