Aller au contenu

Le codage ASCII

ASCII (American Standard Code for Information Interchange) est une norme informatique de codage des caractères anglais apparue dans les années 1960.

La table ASCII ci-dessous fournit la correspondance entre 128 = 2⁷ caractères et leur représentation binaire :

Table ASCII binaire

Les deux premières lignes contiennent des caractères de contrôle qui ne sont pas forcément visibles à l'écran (comme le retour à la ligne CR par exemple).

Caractères de contrôle

Table ASCII binaire

Exemples

Pour déterminer la représentation binaire d'un caractère dans la table, on lit d'abord le numéro de ligne, puis le numéro de colonne.

  1. La représentation binaire du caractère 'a' est 0110 0001.
  2. La représentation binaire du caractère 'T' est 0101 0100.
  3. La représentation binaire du caractère '8' est 0011 1000.

Représentation hexadécimale

Comme pour la représentation des entiers, les séquences de 4 bits peuvent être regroupées en une valeur hexadécimale. Cela donne la table ci-dessous :

Table ASCII hexadécimale

Python et le codage ASCII

Python intègre nativement des méthodes et fonctions permettant de convertir un caractère en représentation ASCII décimale (entre 0 et 127).

Représentation ASCII décimale

Pour déterminer cette représentation, il suffit de convertir en base 10 la représentation binaire (ou la représentation hexadécimale) du caractère recherché. Ainsi :

  • les entiers entre 48 et 57 représentent les caractères de '0' à '9' ;
  • les entiers entre 65 et 90 représentent les caractères de 'A' à 'Z' ;
  • les entiers entre 97 et 122 représentent les caractères de 'a' à 'z'.
  • La fonction ord() de Python renvoie la valeur décimale ASCII du caractère passé en paramètre.
  • La fonction chr() renvoie le caractère représenté par la valeur décimale ASCII passée en paramètre.

Exemples

>>> ord('b')
98

>>> chr(65)
'A'

La boucle ci-dessous affiche la liste des caractères et leur représentation décimale ASCII :

for i in range(128):
    print(f'Valeur ASCII : {i}\t Caractère : {chr(i)}')