Endianness
Le endianness est l'ordre des octets des valeurs multi-octets en mémoire : gros-boutiste stocke d'abord l'octet de poids fort, petit-boutiste d'abord l'octet de poids faible.
Objectif
Définir comment les données multi-octets sont stockées et transmises de manière cohérente entre architectures CPU.
Mécanisme
Gros-boutiste : l'octet de poids fort est à l'adresse la plus basse (0x010203 stocké comme 01 02 03), la convention des protocoles réseau. Petit-boutiste : l'octet de poids faible est à l'adresse la plus basse (stocké comme 03 02 01), utilisé par x86/ARM. UTF-16/32 exigent un BOM ou une déclaration explicite d'endianness.
Cas d’usage
- Champs des protocoles réseau (l'ordre des octets réseau est gros-boutiste)
- Formats de fichiers binaires (ex. PNG gros-boutiste, ELF petit-boutiste)
- Sérialisation de données multiplateforme
- Développement embarqué et pilotes
Exemples
- entrée
0x01020304OutputBE: 01 02 03 04 / LE: 04 03 02 01The same value in both byte orders
Erreurs courantes
- Sending host-order integers without network byte order conversion
- Convert explicitly with htonl/ntohl or DataView
Termes associés
Byte Order Mark
La marque d'ordre des octets (BOM) est le caractère U+FEFF placé au début d'un texte Unicode pour indiquer la forme d'encodage et l'ordre des octets. GLOSSAIRE
UTF-16
UTF-16 est la forme d'encodage Unicode de longueur variable utilisant 2 ou 4 octets par point de code : les caractères du BMP occupent une unité de code de 16 bits et ceux des plans supplémentaires, une paire de substitution (2 unités). GLOSSAIRE
Binary
Le binaire est le système de numération en base 2, n'utilisant que 0 et 1 ; il est le fondement de la représentation interne des données dans tous les ordinateurs électroniques numériques. GLOSSAIRE
BOM
Le BOM (marque d'ordre des octets) est le caractère Unicode U+FEFF, placé au début d'un flux de texte pour indiquer la forme d'encodage et l'ordre des octets. GLOSSAIRE