Udostępnij za pośrednictwem


Porady: konwertowanie tablicy typu Byte na liczbę całkowitą (Przewodnik programowania w języku C#)

Ten przykład pokazuje jak używać BitConverter klasy w celu przekonwertowania tablicę bajtów, aby int i z powrotem do tablicy bajtów.Należy przekonwertować z bajtów wbudowany typ danych po przeczytaniu bajtów poza siecią, na przykład.Oprócz ToInt32(Byte, Int32) metody w przykładzie w poniższej tabeli wymieniono metody w BitConverter klasy, aby konwertować bajtów (z tablicą bajtów) do innych wbudowanych typów.

Zwracany typ

Metoda

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)

Przykład

W tym przykładzie inicjuje tablicę bajtów, odwraca tablicy, jeśli architektura komputera jest little-endian (to znaczy najmniej znaczący bajt jest przechowywany po pierwsze), a następnie wywołuje ToInt32(Byte, Int32) metodę konwersji cztery bajty w tablicy w celu int.Drugi argument ToInt32(Byte, Int32) Określa indeks początkowy tablicy bajtów.

[!UWAGA]

Dane wyjściowe mogą się różnić w zależności od endianess 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 konwersji int do tablicy bajtów.

[!UWAGA]

Dane wyjściowe mogą się różnić w zależności od endianess architektury komputera.

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

Zobacz też

Informacje

BitConverter

IsLittleEndian

Typy (Przewodnik programowania w języku C#)