Руководство по программированию на C#. Преобразование массива байтов в значение типа int

В этом примере демонстрируется использование класса 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)

Примеры

В этом примере инициализируется массив байтов, отменяет массив, если архитектура компьютера является малоконечной (т. е. наименее значимым байтом хранится сначала), а затем вызывает метод ToInt32(Byte[], Int32), чтобы преобразовать четыре байта в массив int. Второй аргумент ToInt32 (Byte[], Int32) задает начальный индекс массива байтов.

Примечание.

Результат зависит от порядка следования байтов в архитектуре компьютера.

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

В этом примере вызывается метод GetBytes(Int32) класса BitConverter для преобразования значения int в массив байтов.

Примечание.

Результат зависит от порядка следования байтов в архитектуре компьютера.

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

См. также