Vorgehensweise: Konvertieren eines Bytearrays in einen ganzzahligen Typ (C#-Programmierleitfaden)
In diesem Beispiel wird veranschaulicht, wie Sie die BitConverter-Klasse dazu verwenden, einen Bytearray in einen int-Typ und wieder zurück in ein Bytearray zu konvertieren. Sie müssen möglicherweise Bytes in einen integrierten Datentyp konvertieren, wenn Sie z.B. Bytes aus dem Netzwerk gelesen haben. Die folgende Tabelle enthält zusätzlich zu der Methode ToInt32(Byte[], Int32) aus dem Beispiel auch die Methoden in der BitConverter-Klasse, die Bytes (aus einem Bytearray) in andere integrierte Typen konvertiert.
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) |
Beispiele
In diesem Beispiel wird ein Bytearray initialisiert und umgekehrt, wenn die Computerarchitektur Little-Endian entspricht (das kleinstwertige Byte wird am Anfang gespeichert). Anschließend wird die Methode ToInt32(Byte[], Int32) aufgerufen, um vier Bytes im Array in int
zu konvertieren. Das zweite Argument für ToInt32(Byte[], Int32) gibt den Startindex des Bytearrays an.
Hinweis
Die Ausgabe kann sich je nach der Bytereihenfolge der Architektur Ihres Computers unterscheiden.
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 Methode GetBytes(Int32) der Klasse BitConverter aufgerufen, um int
in ein Bytearray zu konvertieren.
Hinweis
Die Ausgabe kann sich je nach der Bytereihenfolge der Architektur Ihres Computers unterscheiden.
byte[] bytes = BitConverter.GetBytes(201805978);
Console.WriteLine("byte array: " + BitConverter.ToString(bytes));
// Output: byte array: 9A-50-07-0C