Partilhar via


Como converter uma matriz de bytes em int (Guia de Programação em C#)

Este exemplo mostra como usar a BitConverter classe para converter uma matriz de bytes em int e de volta para uma matriz de bytes. Poderá ter de converter de bytes para um tipo de dados incorporado depois de ler bytes fora da rede, por exemplo. Além do método ToInt32(Byte[], Int32) no exemplo, a tabela a seguir lista métodos BitConverter na classe que convertem bytes (de uma matriz de bytes) em outros tipos internos.

Tipo retornado Método
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)

Exemplos

Este exemplo inicializa uma matriz de bytes, reverte a matriz se a arquitetura do computador for little-endian (ou seja, o byte menos significativo é armazenado primeiro) e, em seguida, chama o método ToInt32(Byte[], Int32) para converter quatro bytes na matriz em um int. O segundo argumento para ToInt32(Byte[], Int32) especifica o índice inicial da matriz de bytes.

Nota

A saída pode variar dependendo da endianness da arquitetura do seu computador.

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

Neste exemplo, o GetBytes(Int32) método da BitConverter classe é chamado para converter um int em uma matriz de bytes.

Nota

A saída pode variar dependendo da endianness da arquitetura do seu computador.

byte[] bytes = BitConverter.GetBytes(201805978);
Console.WriteLine("byte array: " + BitConverter.ToString(bytes));
// Output: byte array: 9A-50-07-0C

Consulte também