Saltar al contenido

Diferencia entre el orden de bytes Big Endian y Little Endian

Solución:

Big-Endian (BE) / Little-Endian (LE) son dos formas de organizar palabras de varios bytes. Por ejemplo, cuando se utilizan dos bytes para representar un carácter en UTF-16, hay dos formas de representar el carácter 0x1234 como una cadena de bytes (0x00-0xFF):

Byte Index:      0  1
---------------------
Big-Endian:     12 34
Little-Endian:  34 12

Para decidir si un texto usa UTF-16BE o UTF-16LE, la especificación recomienda anteponer un Marca de orden de bytes (BOM) a la cadena, que representa el carácter U + FEFF. Entonces, si los primeros dos bytes de un archivo de texto codificado en UTF-16 son FE, FF, la codificación es UTF-16BE. Para FF, FE, es UTF-16LE.

Un ejemplo visual: la palabra “Ejemplo” en diferentes codificaciones (UTF-16 con BOM):

Byte Index:   0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15
------------------------------------------------------------
ASCII:       45 78 61 6d 70 6c 65
UTF-16BE:    FE FF 00 45 00 78 00 61 00 6d 00 70 00 6c 00 65
UTF-16LE:    FF FE 45 00 78 00 61 00 6d 00 70 00 6c 00 65 00

Para obtener más información, lea la página de Wikipedia de Endianness y / o UTF-16.

La respuesta de Ferdinand (y otras) son correctas, pero incompletas.

Big Endian (BE) / Little Endian (LE) no tienen nada que ver con UTF-16 o UTF-32. Existieron mucho antes que Unicode y afectan la forma en que los bytes de números se almacenan en la memoria de la computadora. Dependen del procesador.

Si tienes un número con el valor 0x12345678 entonces en la memoria se representará como 12 34 56 78 (BE) o 78 56 34 12 (LE).

UTF-16 y UTF-32 están representados en 2 respectivamente 4 bytes, por lo que el orden de los bytes respeta el orden que sigue cualquier número en esa plataforma.

UTF-16 codifica Unicode en valores de 16 bits. La mayoría de los sistemas de archivos modernos operan en bytes de 8 bits. Entonces, para guardar un archivo codificado en UTF-16 en el disco, por ejemplo, debe decidir qué parte del valor de 16 bits va en el primer byte y cuál en el segundo.

Wikipedia tiene una explicación más completa.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *