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

ToBoolean(array<Byte[], Int32)

char

ToChar(array<Byte[], Int32)

double

ToDouble(array<Byte[], Int32)

short

ToInt16(array<Byte[], Int32)

int

ToInt32(array<Byte[], Int32)

long

ToInt64(array<Byte[], Int32)

float

ToSingle(array<Byte[], Int32)

ushort

ToUInt16(array<Byte[], Int32)

uint

ToUInt32(array<Byte[], Int32)

ulong

ToUInt64(array<Byte[], Int32)

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

Vedere anche

Riferimenti

BitConverter

IsLittleEndian

Tipi (Guida per programmatori C#)