Procedura: convertire una matrice di byte in un Integer (Guida per programmatori C#)
In questo esempio viene illustrato come utilizzare la classe BitConverter per convertire una matrice di byte in un valore int e nuovamente in una matrice di byte.Può essere necessario, ad esempio, convertire un valore in byte in un tipo di dati incorporato dopo avere letto i byte dalla rete.Oltre al metodo ToInt32(array<Byte[], Int32) dell'esempio, nella tabella riportata di seguito sono elencati i metodi nella classe BitConverter che convertono i byte (da una matrice di byte) in altri tipi incorporati.
Tipo restituito |
Metodo |
---|---|
bool |
|
char |
|
double |
|
short |
|
int |
|
long |
|
float |
|
ushort |
|
uint |
|
ulong |
Esempio
In questo esempio viene inizializzata una matrice di byte, viene convertita la matrice se l'architettura del computer è little-endian (byte meno significativo archiviato per primo), quindi viene chiamato il metodo ToInt32(array<Byte[], Int32) per convertire quattro byte nella matrice in un valore int.Il secondo argomento nel metodo ToInt32(array<Byte[], Int32) specifica l'indice di inizio della matrice di byte.
[!NOTA]
L'output può variare a seconda del tipo di architettura del computer (little-endian o big-endian).
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 il metodo GetBytes(Int32) della classe BitConverter viene chiamato per convertire un valore int in una matrice di byte.
[!NOTA]
L'output può variare a seconda del tipo di architettura del computer (little-endian o big-endian).
byte[] bytes = BitConverter.GetBytes(201805978);
Console.WriteLine("byte array: " + BitConverter.ToString(bytes));
// Output: byte array: 9A-50-07-0C