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 |
|
char |
|
double |
|
short |
|
int |
|
long |
|
float |
|
ushort |
|
uint |
|
ulong |
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