Convertisseur binaire en texte
Décodez un flux de bits en caractères lisibles, en veillant à l’ordre des octets.
Un ordinateur reçoit une série de 1 et de 0 bruts : 0100100001100101011011000110110001101111. Votre écran affiche « Hello ». Entre les deux, le système découpe ce flux en octets de 8 bits, convertit chacun en un code ASCII, puis affiche la lettre correspondante. Mais si l’ordre des octets s’inverse, vous voyez du charabia.
Comment un flux binaire devient du texte
Le processus est simple : découpez le flux de droite à gauche en octets (groupes de 8 bits). Convertissez chaque octet en nombre décimal, puis en caractère ASCII. 01001000 = 72 = H, 01100101 = 101 = e, 01101100 = 108 = l, et ainsi de suite.
Le flux doit être divisible par 8. S’il reste des bits orphelins à gauche, l’interprétation dépend du système. Certains les complètent avec des zéros, d’autres les ignorent.
Termes clés du décodage binaire-texte
- Octet — 8 bits consécutifs. C’est l’unité de base du texte numérique.
- Endianité — L’ordre dans lequel les octets sont lus. Big-endian lit de gauche à droite, little-endian de droite à gauche. Un mauvais choix produit du charabia.
- Encodage — La norme utilisée pour associer des bits à des caractères. ASCII sur 7 bits, UTF-8 sur 1 à 4 octets, etc.
- Padding — Des zéros ajoutés pour remplir jusqu’à un octet complet. Important en transmission où chaque message doit être un nombre entier d’octets.
Exemple : « Hello » en binaire et en décimal
| Binaire | Décimal | Caractère |
|---|---|---|
| 01001000 | 72 | H |
| 01100101 | 101 | e |
| 01101100 | 108 | l |
| 01101100 | 108 | l |
| 01101111 | 111 | o |
Questions sur le décodage binaire-texte
Et si l’endianité n’est pas respectée ?
Vous obtenez du charabia. Par exemple, 01001000 01100101 lu en little-endian devient 01100101 01001000, soit « e » puis « H », ou pire, un mélange si l’ordre des octets change. Les protocoles réseau doivent spécifier l’endianité pour éviter ça.
Comment savoir quel encodage utiliser ?
Le fichier ou le message doit l’indiquer. Une en-tête HTTP dit charset=utf-8. Un fichier texte peut contenir une déclaration. Si vous ne savez pas, UTF-8 est le pari le plus sûr aujourd’hui.
Peut-on décoder du binaire qui ne contient que des chiffres ?
Oui, s’ils sont encodés en ASCII. Le chiffre « 5 » est 00110101 en binaire, pas 00000101.
Que se passe-t-il si un bit est endommagé en transit ?
Un seul bit changé suffit à produire un mauvais caractère. 01001000 (H) devient 01001001 (I) si le bit de droite change. En transmission critique, on ajoute des bits de parité ou des checksums.
L’UTF-8 rend-il le décodage plus compliqué ?
Oui et non. UTF-8 utilise 1 à 4 octets par caractère selon le caractère. Un « A » reste 01000001 (ASCII), mais un « é » prend deux octets (11000011 10101001 en UTF-8). Le décodeur doit reconnaître ces préfixes.