如何:将字节数组转换为 int(C# 编程指南)

此示例演示如何使用 BitConverter 类将字节数组转换为 int 并返回字节数组。 例如,在从网络读取字节之后,可能需要将字节转换为内置数据类型。 除了示例中的 ToInt32(Byte, Int32) 方法之外,下表列出了 BitConverter 类中将字节(来自字节数组)转换为其他内置类型的方法。

返回类型

方法

bool

ToBoolean(Byte, Int32)

char

ToChar(Byte, Int32)

double

ToDouble(Byte, Int32)

short

ToInt16(Byte, Int32)

int

ToInt32(Byte, Int32)

long

ToInt64(Byte, Int32)

float

ToSingle(Byte, Int32)

ushort

ToUInt16(Byte, Int32)

uint

ToUInt32(Byte, Int32)

ulong

ToUInt64(Byte, Int32)

示例

此示例实例化字节数组,并在计算机结构为 little-endian 的情况下反转数组(即首先存储最低有效字节),然后调用 ToInt32(Byte, Int32) 方法以将数组中的四个字节转换为 int。 ToInt32(Byte, Int32) 的第二个参数指定字节数组的起始索引。

备注

输出可能会根据计算机结构的 endian 设置而不同。

byte[] bytes = { 0, 0, 0, 25 };

// If the system architecture is little-endian (that is, little end first), 
// reverse the byte array. 
if (BitConverter.IsLittleEndian)
    Array.Reverse(bytes);

int i = BitConverter.ToInt32(bytes, 0);
Console.WriteLine("int: {0}", i);
// Output: int: 25

在此示例中,调用 BitConverter 类的 GetBytes(Int32) 方法以将 int 转换为字节数组。

备注

输出可能会根据计算机结构的 endian 设置而不同。

byte[] bytes = BitConverter.GetBytes(201805978);
Console.WriteLine("byte array: " + BitConverter.ToString(bytes));
// Output: byte array: 9A-50-07-0C

请参见

参考

BitConverter

IsLittleEndian

类型(C# 编程指南)