Saltar al contenido
uencoder

Endianness

El endianness es el orden de bytes de los valores multibyte en memoria: big-endian almacena primero el byte más significativo, little-endian primero el menos significativo.

Propósito

Resolver cómo se almacenan y transmiten los datos multibyte de forma coherente entre arquitecturas de CPU.

Mecanismo

Big-endian: el byte más significativo ocupa la dirección más baja (0x010203 se guarda como 01 02 03), convención de los protocolos de red. Little-endian: el byte menos significativo ocupa la dirección más baja (se guarda como 03 02 01), usado por x86/ARM. UTF-16/32 requieren BOM o una declaración explícita de endianness.

Casos de uso

  • Campos de protocolos de red (el orden de bytes de red es big-endian)
  • Formatos de archivo binario (p. ej., PNG es big-endian, ELF little-endian)
  • Serialización de datos multiplataforma
  • Desarrollo embebido y de controladores

Ejemplos

  • entrada
    0x01020304
    Output
    BE: 01 02 03 04 / LE: 04 03 02 01

    The same value in both byte orders

Errores comunes

Sending host-order integers without network byte order conversion
Convert explicitly with htonl/ntohl or DataView

Términos relacionados

Herramientas relacionadas

References