Compartir a través de


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

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)

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

Vea también

Referencia

BitConverter

IsLittleEndian

Tipos (Guía de programación de C#)