Jak przekonwertować tablicę bajtów na int (Przewodnik programowania w języku C#)
W tym przykładzie pokazano, jak używać BitConverter klasy do konwertowania tablicy bajtów na liczbę int i z powrotem do tablicy bajtów. Może być konieczne przekonwertowanie z bajtów na wbudowany typ danych po odczytaniu bajtów poza siecią, na przykład. Oprócz metody ToInt32(Byte[], Int32) w tym przykładzie poniższa tabela zawiera listę metod w BitConverter klasie, która konwertuje bajty (z tablicy bajtów) na inne wbudowane typy.
Zwracany typ | Method |
---|---|
bool |
ToBoolean(Byte[], Int32) |
char |
ToChar(Byte[], Int32) |
double |
ToDouble(Bajt[], Int32) |
short |
ToInt16(Byte[], Int32) |
int |
ToInt32(Bajt[], Int32) |
long |
ToInt64(Byte[], Int32) |
float |
ToSingle(Byte[], Int32) |
ushort |
ToUInt16(Byte[], Int32) |
uint |
ToUInt32(Byte[], Int32) |
ulong |
ToUInt64(Bajt[], Int32) |
Przykłady
Ten przykład inicjuje tablicę bajtów, odwraca tablicę, jeśli architektura komputera jest mało endian (czyli najmniej znaczący bajt jest przechowywany jako pierwszy), a następnie wywołuje metodę ToInt32(Byte[], Int32) w celu przekonwertowania czterech bajtów w tablicy na int
. Drugi argument to ToInt32(Byte[], Int32) określa indeks początkowy tablicy bajtów.
Uwaga
Dane wyjściowe mogą się różnić w zależności od endianness architektury komputera.
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
W tym przykładzie GetBytes(Int32) metoda BitConverter klasy jest wywoływana w celu przekonwertowania int
klasy na tablicę bajtów.
Uwaga
Dane wyjściowe mogą się różnić w zależności od endianness architektury komputera.
byte[] bytes = BitConverter.GetBytes(201805978);
Console.WriteLine("byte array: " + BitConverter.ToString(bytes));
// Output: byte array: 9A-50-07-0C