Cómo: Convertir una matriz de bytes en un valor int (Guía de programación de C#)
Actualización: noviembre 2007
Este ejemplo muestra cómo utilizar la clase BitConverter para convertir una matriz de bytes en un valor int y de nuevo en una matriz de bytes. Por ejemplo, es posible que tenga que realizar una conversión de bytes a un tipo de datos integrado después de leer los bytes fuera de la red. Además del método ToInt32(array<Byte[], Int32) del ejemplo, en la tabla siguiente se muestran los métodos de la clase BitConverter que sirven para convertir bytes (de una matriz de bytes) en otros tipos integrados.
Tipo devuelto |
Método |
---|---|
bool |
|
char |
|
double |
|
short |
|
int |
|
long |
|
float |
|
ushort |
|
uint |
|
ulong |
Ejemplo
Este ejemplo inicializa una matriz de bytes, invierte la matriz si la arquitectura de equipo es little-endian (es decir, en primer lugar se almacena el byte menos significativo), y, a continuación, llama al método ToInt32(array<Byte[], Int32) para convertir cuatro bytes de la matriz en int. El segundo argumento de ToInt32(array<Byte[], Int32) especifica el índice de inicio de la matriz de bytes.
Nota: |
---|
El resultado puede cambiar en función del orden de bytes (big-endian o little-endian) de la arquitectura de equipo. |
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
En este ejemplo, se llama al método GetBytes(Int32) de la clase BitConverter para convertir int en una matriz de bytes.
Nota: |
---|
El resultado puede cambiar en función del orden de bytes (big-endian o little-endian) de la arquitectura de equipo. |
byte[] bytes = BitConverter.GetBytes(201805978);
Console.WriteLine("byte array: " + BitConverter.ToString(bytes));
// Output: byte array: 9A-50-07-0C