Gewusst wie: Konvertieren eines Bytearrays in einen ganzzahligen Typ (C#-Programmierhandbuch)

Aktualisiert: November 2007

In diesem Beispiel wird die BitConverter-Klasse zur Konvertierung eines Bytearrays in einen int-Typ und zurück in ein Bytearray verwendet. Sie müssen z. B. nach dem Lesen von Netzwerkbytes die Bytes in einen integrierten Datentyp konvertieren. Neben der ToInt32(array<Byte[], Int32)-Methode im Beispiel finden Sie in der folgenden Tabelle weitere Methoden in der BitConverter-Klasse zur Konvertierung von Bytes (aus einem Bytearray) in andere integrierte Typen.

Zurückgegebener Typ

Methode

bool

ToBoolean(array<Byte[], Int32)

char

ToChar(array<Byte[], Int32)

double

ToDouble(array<Byte[], Int32)

short

ToInt16(array<Byte[], Int32)

int

ToInt32(array<Byte[], Int32)

long

ToInt64(array<Byte[], Int32)

float

ToSingle(array<Byte[], Int32)

ushort

ToUInt16(array<Byte[], Int32)

uint

ToUInt32(array<Byte[], Int32)

ulong

ToUInt64(array<Byte[], Int32)

Beispiel

In diesem Beispiel wird ein Bytearray initialisiert, und das Array wird umgekehrt, falls die Computerarchitektur die Little-Endian-Bytefolge aufweist (d. h., das Byte mit dem niedrigsten Wert wird zuerst gespeichert). Dann wird die ToInt32(array<Byte[], Int32)-Methode aufgerufen, um vier Bytes im Array in einen int-Typ zu konvertieren. Das zweite Argument ToInt32(array<Byte[], Int32) gibt den Startindex des Bytearrays an.

Hinweis:

Je nach Computerarchitektur und verwendeter Endian-Reihenfolge kann das Ergebnis vom Beispiel abweichen.

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

In diesem Beispiel wird die GetBytes(Int32)-Methode der BitConverter-Klasse aufgerufen, um einen int-Typ in ein Bytearray zu konvertieren.

Hinweis:

Je nach Computerarchitektur und verwendeter Endian-Reihenfolge kann das Ergebnis vom Beispiel abweichen.

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

Siehe auch

Referenz

BitConverter

IsLittleEndian

Typen (C#-Programmierhandbuch)