Bit | little endian y big endian

Little endian y Big endian

Little endian y big endian se refieren al orden que las máquinas asignan a los bytes que representan números o valores numéricos. Una máquina little endian asigna los bytes menos significativos en el extremo más bajo de la memoria, mientras que una máquina big endian asigna los bytes menos significativos en el extremo más alto. En los computadores, cada byte se identifica con su posición en la memoria (dirección). Cuando se manejan números de más de un byte, estos bytes también deben estar ordenados de menor a mayor, indicando la posición del byte menos significativo y del byte más significativo. De este modo, un byte con el número decimal 27 se almacenaría en una máquina little endian igual que en una máquina big endian, ya que solo ocupa un byte. Sin embargo, para números más grandes los bytes que los representan se almacenarían en distinto orden en cada arquitectura. Este aspecto es particularmente importante en la programación en lenguaje ensamblador o en código máquina, ya que algunas máquinas consideran el byte situado en la dirección más baja de la memoria el menos significativo (arquitectura little endian, como los procesadores Intel) mientras que otras consideran que ese es el byte más significativo (arquitectura big endian, como los procesadores Motorola).

Por ejemplo, consideremos el número hexadecimal entero AABBCCDD, de 32 bits (4 bytes), localizado en la dirección 100 de la memoria. El número ocuparía las posiciones desde la 100 a la 103, pero dependiendo de si la máquina es little o big endian, los bytes se almacenarían de diferente manera:

Little-endian (como Intel)

100 101 102 103
... DD CC BB AA ...

Big-endian (como Motorola)

100 101 102 103
... AA BB CC DD ...

En las imágenes de arriba, en donde se representan las posiciones de memoria 100, 101, 102 y 103 creciendo de izquierda a derecha, «parece» que la representación big endian es más natural, ya que el número AABBCCDD lo podemos leer correctamente (ver figura), mientras que en la representación little endian parece que el número está al revés, o «patas arriba». Sin embargo, no hay nada que nos impida imaginar que las direcciones de memoria «crecen» de derecha a izquierda, y al observar la memoria de esta manera, la representación little endian «se ve natural» y es la big endian la que «parece» al revés, como se muestra en las figuras de abajo.

Little-endian (como Intel)

103 102 101 100
... AA BB CC DD ...

Big-endian (como Motorola)

103 102 101 100
... DD CC BB AA ...

Independiente de si la máquina es de arquitectura little endian o big endian, los bits dentro de cada byte siempre están en el mismo orden, con el bit más significativo a la izquierda y el menos significativo a la derecha. Los registros del procesador, que pueden ser de 4 a 64 bits, y más, también tienen sus bits en el mismo orden en ambos tipos de máquina. La diferencia entre little y big endian solo existe externamente, en el orden en que los bytes se representan en memoria.

Other Languages
Afrikaans: Bis
aragonés: Bit
Ænglisc: Twāling
العربية: بت
asturianu: Bit
azərbaycanca: Bit
تۆرکجه: بیت
беларуская: Біт
беларуская (тарашкевіца)‎: Біт
বাংলা: বিট
brezhoneg: Bit
bosanski: Bit
català: Bit
کوردی: بیت
čeština: Bit
Cymraeg: Bit
dansk: Bit
Deutsch: Bit
Ελληνικά: Δυαδικό ψηφίο
English: Bit
Esperanto: Bito
eesti: Bitt
euskara: Bit
suomi: Bitti
français: Bit
furlan: Bit
Frysk: Bit
Gaeilge: Giotán
galego: Bit
עברית: סיבית
हिन्दी: द्वयंक
hrvatski: Bit
magyar: Bit
հայերեն: Բիթ
interlingua: Bit
Bahasa Indonesia: Bit
italiano: Bit
日本語: ビット
ქართული: ბიტი
Qaraqalpaqsha: Bit
ಕನ್ನಡ: ಬಿಟ್
한국어: 비트
Кыргызча: Бит (маалымат)
Latina: Bit
Lëtzebuergesch: Bit
lumbaart: Bit
ລາວ: ບິຕ
lietuvių: Bitas
latviešu: Bits
олык марий: Бит
македонски: Бит
മലയാളം: ബിറ്റ്
монгол: Бит
मराठी: बाईट
Bahasa Melayu: Bit
Malti: Bit
Mirandés: Bit
မြန်မာဘာသာ: Bit
Nederlands: Bit (eenheid)
norsk nynorsk: Bit
norsk: Bit
occitan: Bit
polski: Bit
پنجابی: بٹ
português: Bit
română: Bit
русский: Бит
sicilianu: Bit
Scots: Bit
سنڌي: ٻٽ
srpskohrvatski / српскохрватски: Bit (informatika)
Simple English: Bit
slovenčina: Bit
slovenščina: Bit
shqip: Bit
српски / srpski: Бит (рачунарство)
svenska: Bit
தமிழ்: இருமம்
తెలుగు: బిట్
тоҷикӣ: Бит
ไทย: บิต
Türkçe: Bit (bilişim)
українська: Біт
Tiếng Việt: Bit
Winaray: Bit
吴语: 柲 (单位)
ייִדיש: ביט
中文: 位元
Bân-lâm-gú: Bit
粵語: 位元