Como converter uma matriz de bytes em um int (Guia de Programação em C#)
Este exemplo mostra como usar o BitConverter classe para converter uma matriz de bytes para uma int e volta para uma matriz de bytes. Talvez você precise converter bytes em um tipo de dados interno depois de ler bytes fora da rede, por exemplo. Além de ToInt32(Byte, Int32) método no exemplo, a tabela a seguir lista métodos na BitConverter classe converter bytes (a partir de uma matriz de bytes) para outros tipos internos.
Tipo retornado |
Método |
---|---|
bool |
|
char |
|
double |
|
short |
|
int |
|
long |
|
float |
|
ushort |
|
uint |
|
ulong |
Exemplo
Este exemplo inicializa uma matriz de bytes, reverte a matriz se a arquitetura de computador é little-endian (ou seja, o byte menos significativo é armazenado pela primeira vez) e, em seguida, chama o ToInt32(Byte, Int32) método para converter os quatro bytes da matriz para um int. O segundo argumento para ToInt32(Byte, Int32) Especifica o índice de início da matriz de bytes.
Dica
A saída pode variar de acordo com o endianess 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 é chamado de classe para converter um int a uma matriz de bytes.
Dica
A saída pode variar de acordo com o endianess da arquitetura do seu computador.
byte[] bytes = BitConverter.GetBytes(201805978);
Console.WriteLine("byte array: " + BitConverter.ToString(bytes));
// Output: byte array: 9A-50-07-0C