Ce qu’est l’hexadécimal
L’hexadécimal, ou hexa, est un système de numération en base 16. Il utilise les chiffres de 0 à 9 et les lettres de A à F, où A vaut 10 et F vaut 15. Deux chiffres hexa peuvent représenter n’importe quelle valeur de 0 à 255, soit exactement un octet. L’hexa est donc une façon compacte et lisible de montrer des données brutes.
On trouve de l’hexa dans les vidages de mémoire, les captures de paquets réseau, les signatures de fichiers, les codes couleur, les séquences d’échappement du code source et les journaux d’erreurs. Retransformer ces octets en texte révèle souvent ce que disent les données.
Comment utiliser le convertisseur hexadécimal en texte
Hexa vers texte. Collez de l’hexa dans la zone Hexa à gauche. Le texte décodé apparaît dans la zone Texte à droite. Le convertisseur ignore les séparateurs habituels, vous pouvez donc coller :
- des octets espacés :
48 65 6c 6c 6f - une seule longue suite :
48656c6c6f - des préfixes à la C :
0x48 0x65 0x6c - des séquences d’échappement :
\x48\x65\x6c - des octets séparés par des deux-points ou des virgules :
48:65:6c:6c:6f
Texte vers hexa. Tapez dans la zone Texte à droite. L’hexa apparaît à gauche.
Format hexa règle l’écriture de l’hexa :
- Espacé : 48 65 6c pour lire et comparer
- Collé : 48656c pour un stockage compact et les chaînes de type hash
- Préfixé : 0x48 0x65 pour le C, le C++ et les langages proches
- Échappé : \x48\x65 pour les chaînes littérales en Python, JavaScript et scripts shell
Majuscules A à F écrit les lettres en capitales. Copier récupère l’une ou l’autre zone et Effacer vide les deux.
Comment ça marche
Pour décoder, le convertisseur retire les séparateurs, vérifie qu’il ne reste que des chiffres hexa et qu’ils sont en nombre pair, puis lit chaque paire de chiffres comme un octet. Les octets sont décodés en texte UTF-8. Pour encoder, il fait l’inverse : le texte devient des octets UTF-8 et chaque octet devient deux chiffres hexa.
Chaque chiffre hexa représente 4 bits. L’octet 48 vaut 4 × 16 + 8 = 72, le code du H majuscule.
Exemples
| Hexa | Texte |
|---|---|
41 |
A |
48 69 21 |
Hi! |
48 65 6c 6c 6f |
Hello |
48 65 6c 6c 6f 2c 20 57 6f 72 6c 64 21 |
Hello, World! |
42 6f 6e 6a 6f 75 72 |
Bonjour |
63 61 66 c3 a9 |
café |
e2 82 ac |
€ |
Le même texte dans chaque format de sortie :
| Format | café |
|---|---|
| Espacé | 63 61 66 c3 a9 |
| Collé, majuscules | 636166C3A9 |
| Préfixé | 0x63 0x61 0x66 0xc3 0xa9 |
| Échappé | \x63\x61\x66\xc3\xa9 |
Dans un texte français, chaque lettre accentuée apparaît ainsi sur deux octets, c3 suivi d’un second octet : é est c3 a9, è c3 a8, à c3 a0, ç c3 a7. Si vous voyez e9 seul à la place de c3 a9, les données ont probablement été enregistrées en Latin-1 (ISO-8859-1) et non en UTF-8, et l’outil ne pourra pas les lire comme du texte.
Valeurs hexa courantes
| Hexa | Caractère | Hexa | Caractère |
|---|---|---|---|
20 |
espace | 30 |
0 |
0a |
saut de ligne | 41 |
A |
0d |
retour chariot | 61 |
a |
09 |
tabulation | 7e |
~ |
Conseils et limites
- Un résultat illisible signifie en général que les données ne sont pas du texte. Les images, les fichiers compressés et les données chiffrées donnent des symboles bizarres et des caractères de remplacement. C’est normal.
- Vérifiez l’ordre des octets pour les nombres. Cet outil lit les octets dans l’ordre donné. Les nombres sur plusieurs octets des vidages de mémoire sont souvent stockés en little endian : lisez-les de droite à gauche.
- Les codes couleur hexa ne sont pas du texte.
#ff8800décrit des niveaux de rouge, de vert et de bleu, pas des lettres. - L’hexa n’est pas un chiffrement. C’est simplement une autre façon d’écrire des octets.
Autres façons de convertir de l’hexa
Ligne de commande. Sous Linux et macOS, xxd -p transforme un fichier en hexa simple et xxd -r -p fait l’inverse. echo -n Hello | xxd -p affiche 48656c6c6f.
Python. bytes.fromhex('48656c6c6f').decode() renvoie Hello, et 'Hello'.encode().hex() renvoie 48656c6c6f.
JavaScript (Node). Buffer.from('48656c6c6f', 'hex').toString() renvoie Hello.
Excel. =CAR(HEXDEC("48")) dans Excel en français (=CHAR(HEX2DEC("48")) en anglais) renvoie H pour un octet ASCII seul. =DECHEX(72) (=DEC2HEX(72)) fait l’inverse.
Outils associés
Pour voir les mêmes octets en uns et en zéros, utilisez le traducteur de code binaire. L’outil d’encodage UTF-8 montre chaque caractère avec son point de code et ses octets. Si vos données sont en Base64 plutôt qu’en hexa, utilisez le décodeur Base64.