Endianidad


En informática , endianness es el orden o secuencia de bytes de una palabra de datos digitales en la memoria de la computadora . El endianismo se expresa principalmente como big-endian ( BE ) o little-endian ( LE ). Un sistema big-endian almacena el byte más significativo de una palabra en la dirección de memoria más pequeña y el byte menos significativo en la más grande. Un sistema little-endian, por el contrario, almacena el byte menos significativo en la dirección más pequeña.

Endianness también puede usarse para describir el orden en el que se transmiten los bits a través de un canal de comunicación, por ejemplo, big-endian en un canal de comunicaciones transmite primero los bits más significativos. [1] El bit-endianness rara vez se usa en otros contextos.

Las computadoras almacenan información en grupos de bits binarios de varios tamaños. A cada grupo se le asigna un número, llamado su dirección , que la computadora usa para acceder a esos datos. En la mayoría de las computadoras modernas, el grupo de datos más pequeño con una dirección tiene ocho bits de longitud y se denomina byte. Los grupos más grandes comprenden dos o más bytes, por ejemplo, una palabra de 32 bits contiene cuatro bytes. Hay dos formas posibles en que una computadora podría numerar los bytes individuales en un grupo más grande, comenzando en cualquier extremo. Ambos tipos de endianidad se utilizan ampliamente en la ingeniería electrónica digital. La elección inicial de la endianidad de un nuevo diseño suele ser arbitraria, pero las revisiones y actualizaciones de tecnología posteriores perpetúan la endianidad existente para mantener la compatibilidad con versiones anteriores .

Internamente, cualquier computadora funcionará igualmente bien sin importar qué endianidad use, ya que su hardware usará consistentemente la misma endianidad para almacenar y cargar sus datos. Por esta razón, los programadores y los usuarios de computadoras normalmente ignoran el endianness de la computadora con la que están trabajando. Sin embargo, la endianidad puede convertirse en un problema cuando se mueven datos externos a la computadora, como cuando se transmiten datos entre diferentes computadoras o cuando un programador investiga bytes de datos internos de la computadora de un volcado de memoria , y la endianidad utilizada difiere de la expectativa. En estos casos, se debe comprender y tener en cuenta la endianidad de los datos. Bi-endianidad es una función compatible con numerosas arquitecturas informáticas que cuentan con endianidad conmutable en la obtención y almacenamiento de datos o para la obtención de instrucciones.

Big-endianness es el orden dominante en los protocolos de red, como en el conjunto de protocolos de Internet , donde se denomina orden de red , transmitiendo primero el byte más significativo. Por el contrario, little-endianness es el orden dominante para las arquitecturas de procesador ( x86 , la mayoría de las implementaciones ARM , implementaciones base RISC-V ) y su memoria asociada. Los formatos de archivo pueden usar cualquier orden; algunos formatos usan una combinación de ambos o contienen un indicador de qué orden se usa en todo el archivo. [2]

Los estilos de little- y big-endian también pueden usarse de manera más general para caracterizar el orden de cualquier representación, por ejemplo, los dígitos en un sistema numérico o las secciones de una fecha . Los números en notación posicional generalmente se escriben con sus dígitos en orden big-endian, incluso en escrituras de derecha a izquierda . De manera similar, los lenguajes de programación usan el orden de dígitos big-endian para literales numéricos .


Ejemplo de endian
Little-endian