Endianness
Endianness es un Ciencias de la Computación término que describe cómo datos está almacenado. Específicamente, define qué final de un byte múltiple tipo de datos Contiene los valores más significativos. Los dos tipos de endianness son big-endian y little-endian.
Big-Endian
Big-endian es la forma más común de almacenar binario datos. Primero coloca el valor más significativo (o el más grande), seguido de los valores menos significativos. Por ejemplo, la representación big-endian de la entero 123 coloca primero el valor de las centenas (1), seguido del valor de las decenas (2), luego el valor de las unidades (3) o [123].
Ascendente hacia la izquierda
Little-endian almacena primero el valor menos significativo, seguido de valores cada vez más significativos. Por ejemplo, el número 123 en notación little-endian es [321]. El texto cadena "ABC" se representa como [CBA].
Conversión Endian
En la mayoría de los casos, desarrolladores no tiene que especificar endianness ya que el compilador genera el tipo correcto de datos para un determinado plataforma. Sin embargo, un programa puede necesitar procesar procesos externos datos de entrada, como una formato de archivo que almacena datos con una endianness diferente. En este caso, los datos deben convertirse de little-endian a big-endian o viceversa.
Convertir endianness no es tan simple como invertir los datos. los bytes, en lugar de la los bits, debe ser revertido. En otras palabras, cada byte (o bloque de ocho bits) debe permanecer igual, pero se cambia el orden de los bytes. Esto se puede explicar usando el hexadecimal o representación binaria de datos.
Por ejemplo, el entero 41,394 se representa en notación big-endian como:
hexadecimal: A1B2
binario: 1010000110110010
La conversión de estos datos a little-endian no invierte los datos, sino los bytes individuales dentro de los datos. El hexadecimal usa dos dígitos para representar cada byte - [A1] [B2], mientras que el binario usa ocho dígitos - [10100001] [10110010].
Por lo tanto, la representación little-endian de 41,394 es:
hexadecimal: B2A1
binario: 1011001010100001
NOTA: Algunos procesadores puede obtener datos como big-endian o little-endian sin necesidad de conversión. Esto se llama acceso de datos bi-endian.