Freigeben über


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

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(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(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)

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(Byte, Int32)-Methode aufgerufen, um vier Bytes im Array in einen int-Typ zu konvertieren. Das zweite Argument ToInt32(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)