Vous êtes sur la page 1sur 2

Big Endian / Little Endian

Victoria Nicole Yanez Garzon


Departamento de Electrica y Electronica, Universidad de las Fuerzas Armadas ESPE
Sangolqu-Ecuador
victoria.yanez@gmail.com
ResumenEl presente documento presenta un resumen acerca de
el formato endianness como un atributo de los datos que describe
el orden de los bytes. Existen dos tipos diferentes, denominados
Little Endian y Big Endian.
AbstractThe present document presents a summary brings over
of the format endianness as an attribute of the information that
describes the order of the bytes. There exist two different types,
named Little Endian and Big Endian.

I. I NTRODUCCI ON
Al igual que existen lenguajes o idiomas donde la lectura
y escritura puede ser izquierda-derecha o derecha-izquierda
tambien en el mundo de los ordenadores sucede algo similar.
Al disenar equipos, existen dos arquitecturas diferentes para
controlar el almacenamiento de memoria. Se llaman Big
Endian y Little Endian y referirse al orden en el que se
almacenan los bytes en la memoria. Estas dos frases se
derivan Gran Fin de Entrada Pequeno Fin de Entrada.
Hacen referencia a la forma en que se almacena la memoria.

Los datos UTF-8 no se ven afectados por el formato endian,


aunque los datos se almacenen en mas de 1 byte. Los datos UTF-16 y UTF-32 s se ven afectados por el formato
endian.[1] Por ejemplo, el caracter A se codifica para UTF-16
y UTF-32 como se muestra en la tabla siguiente:
TABLA I
Ejemplo codificacion caracter A

Big Endian
Little Endian

UTF-16
x0041
x4100

UTF-32
X00000041
X41000000

III. B IG E NDIAN
El byte mas significativo se almacena en primer lugar. Los
demas bytes le siguen en orden de significado descendente.
Adoptado por los procesadores de Motorola, por ejemplo el
MC68000, tambien es utilizado por procesadores usados en
maquinas Apple.

Algunas arquitecturas de microprocesador pueden trabajar


con ambos formatos (ARM, PowerPC, DEC Alpha, PA-RISC,
Arquitectura MIPS), y a veces son referidas como sistemas
middle-endian.

II. H ISTORIA DEL T ERMINO


E NDIANNESS
El nombre de Big Endian y de Little Endian se
tomo ironicamente de Los viajes de Gulliver, en que
aparece una discusion sobre si un huevo hervido debera
empezar a comerse abriendolo por su extremo pequeno o por
su extremo grande. Su etimologa proviene de un juego de
palabras en ingles con los terminos compuestos little-end-in
y big-end-in.

III. F ORMATO E NDIAN


El formato endian afecta solamente a los datos de varios
bytes. En un u nico byte, los bits siempre se ordenan del
mismo modo. El orden de los bits dentro de un byte es
siempre 7, 6, 5, 4, 3, 2, 1, 0.

Fig 1. Diagrama del orden Big Endian.

Ejemplo: Los datos 13 y trece expresados en hexadecimal


son 0x3133 y 0x74726563650d0a, pues bien escritos como
datos de 2 bytes en formato Big Endian quedan:
0x31 0x33
y
0x74 0x72 0x65 0x63 0x65 0x0d 0x0a

IV. L ITTLE E NDIAN


Toma como referencia inicial al bit menos significativo, este
formato es promovido principalmente por la empresa Intel.

Formato Original= A B C D
Formato Cambiado= D C B A
Ademas, dada la simetra entre ambos, la misma funcion nos
sirve tanto para pasar de Little Endian a Big Endian como
de Big Endian a Little Endian.
Como podemos observar es un procedimiento sencillo en
intercambio de posiciones de los extremos opuestos entre
sistemas.
Fig 2. Diagrama del orden Little Endian.

Se toma el ejemplo anterior: los mismos datos hexadecimales


como datos de 2 bytes en formato liitle endian equivaldra a
lo siguiente:
0x33 0x31
y
0x0a 0x0d 0x65 0x63 0x65 0x72 0x74

V. D IFERENCIA EN LOS F ORMATOS E NDIAN


El tema de ordenacion de los bytes ha sido ampliamente
discutido, una de estas rivalidades esta entre el PC y el Mac.
Ambos formatos tienen ventajas e inconvenientes.
Little Endian: Las instrucciones que se emplean
en el lenguaje ensamblador para elegir un numero
determinado de bytes procede de la misma manera que
en el little endian, leyendo primero el de menos peso y
desplazandose.
Las rutinas matematicas son mas sencillas de
implementar ya que tienen un relacion igual entre
el offset y el numero del byte.
Big Endian: Nos facilita conocer si el numero es
positivo o negativo solo comprobando el primer byte sin
la necesidad de conocer la longitud del numero.
Esta representacion es similar con el orden en escribir
un numero, de modo que las rutinas de conversion entre
sistemas de numeracion son mas eficientes.
Existen arquitecturas que permiten escoger la endianness
que se prefiere usar (como IA64, MIPS y ARM) y que reciben
el nombre de bi-endian. En estos sistemas, normalmente
este cambio se puede hacer por software (al arrancar el
equipo,por ejemplo), pero en algun caso se ha de realizar por
hardware (como podra ser cambiando un jumper en la placa
base).[2]

VII. C AMBIO DE F ORMATOS


Una vez conocidas las caracterstcas de cada diferentes
sistemas, es necesario conocer el proceso para la
transformacion de un sistema al otro.
Se puede elaborar una funcion que intercambie los bytes.

C ONCLUSIONES
Ambas formas de almacenamiento tienen sus ventajas y
desventajas en comparacion, como el little endian nos
facilita el trabajo en el lenguaje ensamblador ya que
procede de la misma manera, en el caso del big endian
nos facilita conocer si el numero es positivo o negativo
sin necesidad de conocer la extension de la palabra.
Un programador debe saber en ocasiones con que plataforma se ha creado un fichero de datos, para poderlo
interpretar correctamente.
El protocolo TCP usa el formato Big Endian, por lo
que los sistemas que usan Little Endiandeben convertir
los datos al crear los paquetes TCP/IP.
Es necesario conocer los dos formatos de almacenamiento, en caso realizar una programacion en un ordenador
o que un programa trabaje en multiplataforma se debe
reconocer si trabaja con Big Endian o Little Endian.
El lenguaje C y otras aplicaciones para Windows usan el
formato de Little Endian para el manejo de informacion.
Bit Order Mask es la forma que tiene la codificacion
de caracteres Unicode de marcar si los datos han sido
guardados en Little Endian o Big Endian.

R EFERENCIAS
[1] IBM Knowledge Center. (27 de Octubre de 2015). Obtenido
de
http://www-01.ibm.com/support/knowledgecenter/SSEPEK
10.0.0/com.ibm.db2z10.doc.char/src/tpc/db2z endianness.dita?lang=es
[2] Portal
Academico.
(s.f.).
Recuperado
el
27
de
Octubre
de
2015,
de
http://docentes.uaa.mx/guido/wpcontent/uploads/sites/2/2014/10/BE LE.pdf
[3] Universidad Complutense Informatica. (s.f.). Recuperado el
27 de Octubre de 2015, de Estructura de Computadores:
http://www.fdi.ucm.es/profesor/jjruz/WEB2/Temas/EC2.pdf

Vous aimerez peut-être aussi