Passer au contenu principal
ArithmétiqueNotion · Glossaire

code ASCII

L’ASCII est un standard de codage qui associe 128 caractères et commandes à des entiers de 0 à 127, donc représentables sur 7 bits. Il couvre notamment les lettres latines non accentuées, les chiffres, la ponctuation et des contrôles comme la tabulation ou le saut de ligne. Il reste essentiel pour lire de nombreux fichiers et protocoles, et UTF-8 reprend à l’identique ses 128 premières valeurs.
Codage ASCII de la lettre A La lettre A est reliée au nombre décimal 65, puis à la suite binaire 1000001 sur sept bits. A 65 1 0 0 0 0 0 1
Une même information se lit ici comme un caractère, un entier décimal ou une suite de 7 bits : A, 65 et 1000001.
Sommaire

Ce que vous allez apprendre

  • Relier un caractère ASCII à un entier compris entre 0 et 127.
  • Convertir le code 65 de la lettre A en 1000001 sur 7 bits et contrôler le résultat.
  • Séparer les caractères imprimables des codes de contrôle, y compris DEL au code 127.
  • Distinguer ASCII, Unicode, UTF-8 et les extensions sur 8 bits.

En clair

Quand un ordinateur enregistre la lettre « A », il conserve un nombre plutôt que le dessin de la lettre. En ASCII, ce nombre est 65. Écrit avec sept chiffres binaires, il devient 1000001. Le même principe attribue un numéro à chaque lettre latine non accentuée, chiffre, signe courant ou commande technique. Avec 7 bits, on obtient exactement 128 combinaisons, numérotées de 0 à 127.

Définition

L’ASCII est une correspondance normalisée entre 128 caractères ou commandes et les entiers de 0 à 127. Chacun de ces entiers tient sur 7 bits, car sept positions binaires offrent 27 = 128 combinaisons. La norme concerne l’alphabet latin non accentué, les chiffres arabes, la ponctuation courante, quelques symboles et des caractères de contrôle.
Les codes 0 à 31 commandent notamment la tabulation, le saut de ligne ou le retour chariot. Le code 32 représente l’espace, puis les codes 33 à 126 couvrent les signes imprimables. Le code 127, nommé DEL, est lui aussi un code de contrôle non imprimable. Une majuscule et sa minuscule ont donc des codes distincts, tandis qu’une lettre accentuée comme « é » n’a aucun code ASCII.
Des codages sur 8 bits, dont Latin-1 et Windows-1252, ont ensuite ajouté des caractères, mais leurs valeurs au-delà de 127 ne constituent pas de l’ASCII. Unicode attribue des points de code à un répertoire beaucoup plus vaste. En UTF-8, les 128 premiers points de code sont encodés par le même octet que leur valeur ASCII : un texte limité à l’ASCII conserve donc exactement les mêmes octets.

Un exemple, pas à pas

On veut retrouver la représentation ASCII de la lettre majuscule « A ». Les données sont les suivantes : le code décimal de « A » est 65 ; une écriture ASCII comporte 7 bits ; les poids des positions binaires sont 64, 32, 16, 8, 4, 2 et 1.
1. On décompose 65 en puissances de deux : 65 = 64 + 1.
2. On place donc un bit 1 dans les positions de poids 64 et 1.
3. Les cinq positions intermédiaires reçoivent un bit 0.
4. En lisant les sept positions du poids le plus fort au poids le plus faible, on obtient 1000001.
Le résultat est donc : « A » ↔ 65 ↔ 1000001 sur 7 bits. Pour le contrôler, on reconvertit la chaîne binaire : 1 × 64 + 1 × 1 = 65. La valeur retrouvée est bien le code annoncé. La figure matérialise ces trois écritures équivalentes d’une même information.

En pratique

Dans un fichier texte, l’ASCII suffit si chaque caractère appartient à son répertoire. Dès qu’un accent, un autre alphabet ou un emoji apparaît, UTF-8 est le choix adapté ; il conserve pourtant les mêmes octets pour les caractères ASCII.
Dans un protocole ou un format de données, un numéro ASCII permet d’identifier sans ambiguïté une lettre, un séparateur ou une commande. Pour la lettre « A », lire 65 ou 1000001 revient à désigner le même caractère, selon que la valeur est affichée en décimal ou en binaire.
Lorsqu’un texte affiche des caractères inattendus, il faut vérifier l’encodage déclaré avant de remplacer les symboles. Si des valeurs supérieures à 127 sont présentes, le fichier n’est pas constitué d’ASCII pur et doit être interprété avec le codage réellement utilisé.

À ne pas confondre

ASCII et écriture binaire. L’ASCII fixe la correspondance entre un caractère et un entier ; le binaire est une manière d’écrire cet entier. Ainsi, « A » a pour code ASCII 65, et 1000001 est l’écriture binaire de 65 sur 7 bits.
ASCII et Unicode. L’ASCII décrit 128 positions, alors qu’Unicode couvre un répertoire de caractères bien plus vaste. La présence de « é » suffit à trancher : ce caractère existe dans Unicode, mais pas en ASCII.
ASCII et UTF-8. ASCII est un répertoire associé à des valeurs ; UTF-8 est un procédé d’encodage des points de code Unicode en octets. Pour les valeurs de 0 à 127, l’octet UTF-8 coïncide avec la valeur ASCII, ce qui assure la rétrocompatibilité.

Limites et pièges

Le seuil 127. Les caractères imprimables standard s’arrêtent au code 126. Le code 127 correspond à DEL et ne produit pas un signe visible ; il faut donc traiter 0 à 31 et 127 comme des codes de contrôle.
Le huitième bit. L’ASCII n’utilise que 7 bits. Une valeur sur 8 bits comprise entre 128 et 255 appartient à une extension ou à un autre encodage. Sans connaître ce codage, la même valeur peut conduire à des caractères différents ; il faut identifier l’encodage au lieu de parler d’« ASCII étendu » comme d’une norme unique.
Un caractère invisible n’est pas absent. Une tabulation, un saut de ligne ou un retour chariot occupe une position dans les données même s’il ne se dessine pas comme une lettre. Pour diagnostiquer un écart de mise en page, il faut afficher ou inspecter ces codes de contrôle.
La compatibilité ne rend pas les codages identiques. Un fichier ASCII valide est aussi un fichier UTF-8 valide, mais l’inverse est faux. Dès qu’UTF-8 encode un caractère hors des 128 premières positions, plusieurs octets peuvent être nécessaires et le contenu dépasse l’ASCII.

Pour aller plus loin

L’écriture binaire montre comment un entier tel que 65 se décompose en puissances de deux et devient une suite de bits. Ce prolongement éclaire directement la représentation sur 7 bits employée par l’ASCII.
Continuez avec Tangente

Explorez les mathématiques autrement

Retrouvez nos magazines, podcasts et jeux pour explorer les mathématiques autrement.

Découvrir les offres