little endian - big endian
TRANSCRIPT
-
7/24/2019 Little Endian - Big Endian
1/2
Big Endian / Little EndianVictoria Nicole Yanez Garzon
Departamento de Electrica y Electr onica, Universidad de las Fuerzas Armadas ESPE
Sangolqu-Ecuador
ResumenEl presente documento presenta un resumen acerca deel formato endianness como un atributo de los datos que describeel orden de los bytes. Existen dos tipos diferentes, denominadosLittle Endian y Big Endian.
AbstractThe present document presents a summary brings overof the format endianness as an attribute of the information thatdescribes the order of the bytes. There exist two different types,named Little Endian and Big Endian.
I. INTRODUCCION
Al igual que existen lenguajes o idiomas donde la lecturay 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 2 Pequeno Fin de Entrada.
Hacen referencia a la forma en que se almacena la memoria.
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. HISTORIA DEL TERMINOENDIANNESS
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. FORMATOENDIAN
El formato endian afecta solamente a los datos de varios
bytes. En un unico 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.
Los datos UTF-8 no se ven afectados por el formato endian,
aunque los datos se almacenen en mas de 1 byte. Los da-
tos 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
UTF-16 UTF-32
Big Endian x0041 X00000041
Little Endian x4100 X41000000
III. BIGENDIAN
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.
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. LITTLEENDIAN
Toma como referencia inicial al bit menos significativo, este
formato es promovido principalmente por la empresa Intel.
-
7/24/2019 Little Endian - Big Endian
2/2
Fig 2. Diagrama del orden Little Endian.
Se toma el ejemploanterior: 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. DIFERENCIA EN LOSFORMATOSENDIANEl 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 espositivo 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. CAMBIO DEFORMATOSUna 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.
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.
CONCLUSIONESAmbas 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 pla-
taforma 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 almacenamien-
to, 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.
REFERENCIAS
[1] IBM Knowledge Center. (27 de Octubre de 2015). Obtenidode http://www-01.ibm.com/support/knowledgecenter/SSEPEK10.0.0/com.ibm.db2z10.doc.char/src/tpc/db2z endianness.dita?lang=es
[2] Portal Academico. (s.f.). Recuperado el 27 de Oc-tubre de 2015, de htt p:/ /docentes.uaa.mx/ gui do/ wp-content/uploads/sites/2/2014/10/BE LE.pdf
[3] Universidad Complutense Informatica. (s.f.). Recuperado el27 de Octubre de 2015, de Estructura de Computadores:http://www.fdi.ucm.es/profesor/jjruz/WEB2/Temas/EC2.pdf