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