Jak převést bajtové pole na int (Průvodce programováním v C#)

Tento příklad ukazuje, jak pomocí BitConverter třídy převést pole bajtů na int a zpět na pole bajtů. Po přečtení bajtů mimo síť možná budete muset převést z bajtů na předdefinovaný datový typ. Kromě metody ToInt32(Byte[], Int32) v příkladu uvádí následující tabulka metody ve BitConverter třídě, které převádějí bajty (z pole bajtů) na jiné předdefinované typy.

Vrácený typ metoda
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)

Příklady

Tento příklad inicializuje pole bajtů, vrátí matici, pokud je architektura počítače malá-endian (to znamená, že nejméně významný bajt je uložen jako první) a potom volá ToInt32(Byte[], Int32) metoda pro převod čtyř bajtů v poli na int. Druhý argument to ToInt32(Byte[], Int32) určuje počáteční index pole bajtů.

Poznámka:

Výstup se může lišit v závislosti na endianitě architektury počítače.

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

V tomto příkladu GetBytes(Int32)BitConverter je volána metoda třídy pro převod int na pole bajtů.

Poznámka:

Výstup se může lišit v závislosti na endianitě architektury počítače.

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

Viz také