Een bytematrix converteren naar een int (C#-programmeerhandleiding)
In dit voorbeeld ziet u hoe u de BitConverter klasse gebruikt om een matrix van bytes te converteren naar een int en terug naar een matrix van bytes. Mogelijk moet u converteren van bytes naar een ingebouwd gegevenstype nadat u bijvoorbeeld bytes uit het netwerk hebt gelezen. Naast de methode ToInt32(Byte[], Int32) in het voorbeeld bevat de volgende tabel methoden in de BitConverter klasse waarmee bytes (van een matrix van bytes) worden geconverteerd naar andere ingebouwde typen.
Type geretourneerd | Wijze |
---|---|
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) |
Voorbeelden
In dit voorbeeld wordt een matrix van bytes geïnitialiseerd, wordt de matrix omgekeerd als de computerarchitectuur little endian is (dat wil gezegd, de minst significante byte wordt eerst opgeslagen) en vervolgens de methode ToInt32(Byte[], Int32) aanroept om vier bytes in de matrix te converteren naar een int
. Het tweede argument voor ToInt32(Byte[], Int32) geeft de beginindex van de matrix van bytes aan.
Notitie
De uitvoer kan verschillen, afhankelijk van de endianiteit van de architectuur van uw computer.
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 dit voorbeeld wordt de GetBytes(Int32) methode van de BitConverter klasse aangeroepen om een int
te converteren naar een matrix van bytes.
Notitie
De uitvoer kan verschillen, afhankelijk van de endianiteit van de architectuur van uw computer.
byte[] bytes = BitConverter.GetBytes(201805978);
Console.WriteLine("byte array: " + BitConverter.ToString(bytes));
// Output: byte array: 9A-50-07-0C