Inverser l’endianness
Entrée (hex)
Sortie inversée
Détails techniques
Comment fonctionne l’outil d’inversion d’endianess
Ce que fait l’outil
L’outil d’inversion d’endianess inverse l’ordre des octets d’une entrée hexadécimale selon une taille de mot configurable (2, 4 ou 8 octets). Il est destiné à convertir entre des représentations little-endian et big-endian d’entiers à largeur fixe stockés en hexadécimal, un besoin fréquent lorsqu’on travaille avec des formats de fichiers binaires, des protocoles réseau ou des outils de débogage bas niveau qui ne s’accordent pas sur l’ordre des octets.
Cas d’usage courants pour les développeurs
Les reverse engineers normalisent des dumps hex provenant de x86 ou ARM (little-endian) et de PowerPC ou MIPS (historiquement big-endian) afin de comparer des valeurs entre architectures. Les ingénieurs réseau convertissent des entiers en ordre d’octets hôte vers l’ordre d’octets réseau (toujours big-endian) avant de les intégrer dans des captures de paquets. Les développeurs embarqués déboguent des structures stockées en flash en réalignant les octets au format attendu par leurs outils d’analyse.
Formats de données, types ou variantes
L’entrée accepte de l’hexadécimal avec ou sans préfixe `0x` et des espaces arbitraires. La sortie est rendue sous forme d’octets hexadécimaux en minuscules séparés par des espaces pour plus de clarté. Les tailles de mot de 2, 4 et 8 octets correspondent respectivement à des entiers 16, 32 et 64 bits. Plusieurs mots sont inversés indépendamment : avec une taille de mot de 4 octets, 12345678 9ABCDEF0 devient 78 56 34 12 suivi de F0 DE BC 9A.
Pièges courants et cas limites
L’entrée doit contenir un nombre entier d’octets (nombre pair de chiffres hexadécimaux) et un nombre entier de mots (divisible par la taille de mot configurée en octets). Les tailles incompatibles renvoient une erreur plutôt que de tronquer silencieusement. L’ordre d’octets réseau est toujours big-endian, tandis que x86 / ARM utilisent little-endian — inversez les octets lors de la lecture ou de l’écriture d’entiers au format « wire ».
Quand utiliser cet outil plutôt que du code
Utilisez l’outil du navigateur pour des conversions ponctuelles lors de la lecture de dumps binaires ou du débogage. Dans le code, privilégiez `DataView` avec des indicateurs `littleEndian` explicites en JavaScript, `byteorder='little'|'big'` dans `int.from_bytes` de Python, `binary.LittleEndian.Uint32` en Go, ou `ntohl` / `htonl` en C — c’est plus explicite sur l’intention et évite les allers-retours en hexadécimal.