Jak przekonwertować tablicę bajtów na int (Przewodnik programowania w języku C#)

W tym przykładzie pokazano, jak używać BitConverter klasy do konwertowania tablicy bajtów na liczbę int i z powrotem do tablicy bajtów. Może być konieczne przekonwertowanie z bajtów na wbudowany typ danych po odczytaniu bajtów poza siecią, na przykład. Oprócz metody ToInt32(Byte[], Int32) w tym przykładzie poniższa tabela zawiera listę metod w BitConverter klasie, która konwertuje bajty (z tablicy bajtów) na inne wbudowane typy.

Zwracany typ Method
bool ToBoolean(Byte[], Int32)
char ToChar(Byte[], Int32)
double ToDouble(Bajt[], Int32)
short ToInt16(Byte[], Int32)
int ToInt32(Bajt[], Int32)
long ToInt64(Byte[], Int32)
float ToSingle(Byte[], Int32)
ushort ToUInt16(Byte[], Int32)
uint ToUInt32(Byte[], Int32)
ulong ToUInt64(Bajt[], Int32)

Przykłady

Ten przykład inicjuje tablicę bajtów, odwraca tablicę, jeśli architektura komputera jest mało endian (czyli najmniej znaczący bajt jest przechowywany jako pierwszy), a następnie wywołuje metodę ToInt32(Byte[], Int32) w celu przekonwertowania czterech bajtów w tablicy na int. Drugi argument to ToInt32(Byte[], Int32) określa indeks początkowy tablicy bajtów.

Uwaga

Dane wyjściowe mogą się różnić w zależności od endianness architektury komputera.

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

W tym przykładzie GetBytes(Int32) metoda BitConverter klasy jest wywoływana w celu przekonwertowania int klasy na tablicę bajtów.

Uwaga

Dane wyjściowe mogą się różnić w zależności od endianness architektury komputera.

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

Zobacz też