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