Dela via


Så här konverterar du en bytematris till en int (C#-programmeringsguide)

Det här exemplet visar hur du använder BitConverter klassen för att konvertera en matris med byte till en int och tillbaka till en matris med byte. Du kan till exempel behöva konvertera från byte till en inbyggd datatyp när du har läst byte från nätverket. Förutom metoden ToInt32(Byte[], Int32) i exemplet visar följande tabell metoder i BitConverter klassen som konverterar byte (från en matris med byte) till andra inbyggda typer.

Typ returnerad Metod
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)

Exempel

Det här exemplet initierar en matris med byte, vänder matrisen om datorarkitekturen är lite endiansk (det vill säga den minst betydande byte lagras först) och anropar sedan metoden ToInt32(Byte[], Int32) för att konvertera fyra byte i matrisen till en int. Det andra argumentet till ToInt32(Byte[], Int32) anger startindexet för bytematrisen.

Kommentar

Utdata kan variera beroende på endianiteten i datorns arkitektur.

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

I det här exemplet GetBytes(Int32) anropas -metoden för BitConverter klassen för att konvertera en int till en bytematris.

Kommentar

Utdata kan variera beroende på endianiteten i datorns arkitektur.

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

Se även