06 Le Code ASCII

Histoire

Au début de l’informatique, chaque matériel disposait de son propre codage. Malheureusement ces codages étaient incompatibles entre eux. Chaque ordinateur était donc livré avec des sous-programmes et des documents (tables) permettant de transposer les codes d’un matériel à un autre. Un besoin de standardisation est apparu.

La liste des caractères à prendre en compte ainsi que leur position ont été soumis à de nombreux débats.

En 1963, la première version de l’ASCII (American Standard Code for Information Interchange1 ) est publiée.

Tableau des 128 caractères ASCII

Cette norme informatique, basée sur un codage à 7 bits, permet de coder 128 caractères (2⁷) dont seulement 95 sont imprimables (n°32 à 127) : les chiffres de 0 à 9, les lettres minuscules et majuscules, et des symboles mathématiques et de ponctuation.

Exemples : le code 32 correspond à un espace, le 65 au A, le 122 au z…

Limites

Le codage ASCII suffit pour les textes en anglais, mais il est insuffisant pour beaucoup d’autres langues, comme le français, qui possèdent des lettres accentuées. Ceci explique entre autre, pourquoi les adresses électroniques ou les langages informatiques ne comportent jamais de lettres accentuées. Le système de codage ASCII employé à l’origine ne le prévoyait pas.

Évolutions

Cette norme à subit certaines évolutions par la suite en raison de ses limitations. De nombreuses normes de codage de caractères ont repris les codes ASCII et ajouté un 8ème bit afin de pouvoir coder d’autres caractères. Ce codage sur 1 octet (8 bits) permet de coder 256 caractères (2⁸).

Actuellement, la norme UTF-8 est la plus répandue et suffit pour coder les alphabets latins. Elle utilise entre 1 et 4 octets pour coder les lettres et est compatible avec la norme ASCII.

Unicode est un standard informatique développé à partir de 1991 et dont la dernière version a été publiée en mars 2019. Son but est de remplacer les pages de codes nationales où des caractères diffèrent de l’une à l’autre (signe monétaire par exemple $,€). Il vise à regrouper tous les systèmes d’écriture afin de permettre des échanges de textes dans différentes langues, quels que soient les machines ou les logiciels utilisés. Un nom et un identifiant numérique est attribué à chaque caractère de n’importe quel système d’écriture.

Caractères non imprimables

Les 33 caractères non imprimables du tableau ASCII (codes 0 à 31 et 127) sont appelés « caractères de contrôle » et permettent, entre autres :

  • la mise en page,
  • la communication entre programmes, périphériques ou machines,
  • des actions.

La présence de ces caractères de contrôle relève de l’histoire de l’informatique. Les premiers ordinateurs n’avaient pas d’écran, les programmes étaient écrits sur des cartes perforées. Il y avait donc besoin de caractères pour donner des instructions à la tête d’écriture de l’imprimante (le chariot) :

Carte de programmation perforée

Carte de programmation : Mutatis mutandis CC BY-SA 3.0

BS → reculer d’un caractère. CR (le « retour chariot ») → Retour au début de la ligne.

LF → Descendre d’une ligne. CR + LF → Commencer une nouvelle ligne.


1Prononcer ([askiː]) Code américain normalisé pour l’échange d’information


Précision

Les correspondances de la table ASCII peuvent paraître étranges au premier abord. Pourquoi ne pas avoir mis les minuscules à la suite des majuscules par exemple. Si vous observez la table ASCII, vous remarquerez qu’une lettre minuscule et majuscule sont espacés de 32 cases. A=65 / a=97 ; K=75 / k=107 …

Ce n’est pas un hasard. Cette convention vient de l’écriture binaire qui permet de passer de la majuscule à la minuscule en modifiant simplement le bit n°6 (2⁶=32).

Ainsi, A←→01000001 et a←→01100001 ; K←→01001011 et K←→01101011…

Sources

Pour aller plus loin

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *