Come convertire una matrice di byte in un int (Guida per programmatori C#)
Questo esempio mostra come usare la classe BitConverter per convertire una matrice di byte in un valore int e di nuovo in una matrice di byte. Può essere necessario ad esempio convertire i byte in un tipo di dati predefinito dopo la lettura dei byte dalla rete. Oltre al metodo ToInt32(Byte[], Int32) nell'esempio, la tabella seguente elenca i metodi nella BitConverter classe che converte i byte (da una matrice di byte) ad altri tipi predefiniti.
Tipo restituito | Metodo |
---|---|
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) |
Esempio
In questo esempio viene inizializzata una matrice di byte, inverte la matrice se l'architettura del computer è little-endian (ovvero il byte meno significativo viene archiviato per primo) e quindi chiama il metodo ToInt32(Byte[], Int32) per convertire quattro byte nella matrice in un oggetto int
. Il secondo argomento di ToInt32(Byte[], Int32) specifica l'indice iniziale della matrice di byte.
Nota
L'output può variare a seconda dell'estremità dell'architettura del 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 questo esempio viene chiamato il metodo GetBytes(Int32) della classe BitConverter per convertire un valore int
in una matrice di byte.
Nota
L'output può variare a seconda dell'estremità dell'architettura del computer.
byte[] bytes = BitConverter.GetBytes(201805978);
Console.WriteLine("byte array: " + BitConverter.ToString(bytes));
// Output: byte array: 9A-50-07-0C