little endian - big endian

Upload: vickyyanez7

Post on 21-Feb-2018

214 views

Category:

Documents


0 download

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

    [email protected]

    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