ASCII - American Standard Code for Information Interchange

Toute personne ayant à faire avec l’informatique depuis un certain temps a probablement déjà rencontré l’acronyme auparavant : que signifie l’abréviation ASCII ? Le terme fait référence à un codage de caractères fixe. Il attribue des caractères imprimables tels que des lettres, des chiffres, des signes de ponctuation et des caractères de contrôle non imprimables à des codes spécifiques. Le code ASCII est utilisé pour définir comment les caractères sont représentés par des dispositifs électroniques tels que les PC ou les Smartphone. C’est une partie importante de nombreuses tâches de programmation. Mais il est aussi logique pour un utilisateur lambda de comprendre comment le code ASCII fonctionne. Nous mettons un tableau de codes ASCII à votre disposition, dans lequel vous pouvez retrouver chaque caractère.

Définition ASCII

Il s’agit d‘un encodage de caractères, l’American Standard Code for Information Interchange, précurseur américain de l’ISO 646 (qui définit des ensembles de caractères à l’international).  ASCII est un code de 7 bits définissant 128 caractères (27). L’encodage se compose de 33 caractères non imprimables et 95 caractères imprimables et comprend des lettres, des signes de ponctuation, des chiffres ainsi que des caractères de contrôle Unicode.

Bref historique du code ASCII

L’American Standards Association (ASA, désormais connue sous le nom d’ANSI pour American National Standards Institute) a approuvé l’American Standard Code for Information Interchange (ASCII) en 1963. De cette façon, elle a fourni les lignes directrices et contraintes sur la façon dont les appareils électroniques devraient représenter les caractères. Étant donné qu’il s’agit d’une norme purement américaine, on l’appelle souvent US-ASCII. On pourrait parler du morse comme étant son prédécesseur, ou codages utilisés pour effectuer des télécopies : un code normalisé (par exemple, une séquence fixe de signaux acoustiques) est traduit en texte. Comme les ordinateurs ne peuvent pas gérer notre alphabet non plus puisque leurs processeurs internes sont basés sur un système binaire, ASCII a été introduit.

À ce jour, la norme de caractères n’a été modifiée que quelquefois afin de l’adapter aux nouvelles exigences. Par exemple, il existe des versions étendues qui utilisent un huitième Bit, de sorte que les caractères spécifiques nationaux, comme le « ç » ou les accents, soient affichés. La norme ISO 88591-1 Latin-1, toujours très populaire, est basée sur le code ASCII. Un changement entre l’alphabet latin et, par exemple, les caractères arabes est impossible. Pour cette raison, les jeux de caractères basés sur Unicode tels que UTF-8 sont largement répandus : Unicode offre de l’espace pour plus d’un million de caractères différents. UTF-8 est également compatible avec ASCII, c’est-à-dire qu’il encode les 128 premiers caractères de la même façon.

Qu’est-ce que ASCII?

ASCII est un standard pour l’affichage de caractères à travers des dispositifs électroniques. Pour comprendre ce que cela signifie, il faut être conscient du fonctionnement réel d’un ordinateur : sur un ordinateur, les processeurs de calcul sont toujours basés sur le système binaire. Cela signifie que les processeurs d’un ordinateur sont déterminés par des 1 et des 0. C’est pourquoi ASCII est également construit sur ce système. La norme ASCII d’origine définit différents caractères à l’intérieur de 7 bits, c’est à dire sept chiffres qui indiquent 0 ou 1. Le huitième bit, qui appartient à un octet entier, est traditionnellement utilisé à des fins de vérification. Les versions étendues basées sur ASCII utilisent précisément ce bit pour étendre les caractères disponibles à 256 (28).

Par exemple, chaque caractère correspond à une séquence de zéros et de uns à sept chiffres, qui peuvent être représentés par un nombre décimal ou hexadécimal. Les caractères ASCII peuvent être divisés en plusieurs groupes :

  • Caractère de commandes (0–31 & 127) : les caractères de contrôle sont des caractères non imprimables. Ils sont utilisés pour transmettre des commandes au PC ou à l'imprimante et sont basés sur la technologie de télécopie. Ces caractères sont utilisés, par exemple, pour définir des sauts de ligne ou des tabulations. Bon nombre de ces caractères ne sont plus utilisés aujourd'hui.
  • Caractères spéciaux (32–47 / 58–64 / 91–96 / 123–126) : les caractères spéciaux comprennent tous les caractères imprimables qui ne sont ni des lettres ni des chiffres, tels que les signes de ponctuation ou les caractères techniques et mathématiques. ASCII inclut également le caractère blanc, qui est considéré comme un caractère non visible mais imprimable, et n'appartient donc pas aux caractères de contrôle comme on pourrait le soupçonner.
  • Nombres (30–39) : les nombres comprennent les dix chiffres arabes de zéro à neuf.
  • Lettres (65–90 / 97–122) : les lettres sont divisées en deux blocs, le premier groupe contenant les majuscules et le second les minuscules.
Note

A l’origine, le 8ème bit devait permettre de vérifier les données pour des erreurs. Le bit de parité permet au récepteur de la séquence de bits de détecter les incohérences. Cependant, on ne peut que constater qu'une erreur s'est produite, mais pas où se trouve exactement la cause. Par conséquent, le contrôle de parité n'est guère adapté à la correction des erreurs.

Tableau ASCII : aperçu de tous les codes ASCII

Dans ces tableaux de codes ASCII, les valeurs sont généralement affichées en valeurs décimales, binaires et hexadécimales. Les deux premières sortes apparaissent car elles sont couramment utilisées par les humains ou les machines. Le système hexadécimal, par contre, présente l’avantage de comporter 16 caractères (-9 + A-F) et peut donc afficher de grands nombres avec moins de chiffres que les deux autres variantes. De cette façon, un octet peut toujours être représenté avec un maximum de deux chiffres.

Bin. Hex. Dec. Caractères ASCII Explication Groupe
0000000 0 0 NUL Un caractère nul invite l’appareil à ne rien faire Caractères de commande
0000001 1 1 SOH Introduit un en-tête (Start of heading) Caractères de commande
0000010 2 2 STX Termine l’en-tête et marque le début d’un message (Start of text) Caractères de commande
0000011 3 3 ETX Affiche la fin du message (End of text) Caractères de commande
0000100 4 4 EOT Marque la fin de la transmission complète (End of transmission) Caractères de commande
0000101 5 5 ENQ Une requête qui demande une réponse (Enquiry) Caractères de commande
0000110 6 6 ACK Donne une réponse positive à une requête (Acknowledge) Caractères de commande
0000111 7 7 BEL Déclenche un signal audio (Bell) Caractères de commande
0001000 8 8 BS Permet au curseur de reculer d’une étape (Backspace) Caractères de commande
0001001 9 9 TAB (HT) Onglet horizontal qui déplace le curseur au sein d’une ligne vers la position prédéfinie suivante (Horizontal tab) Caractères de commande
0001010 A 10 LF Permet au curseur de passer à la ligne suivante (Line feed) Caractères de commande
0001011 B 11 VT L’onglet vertical fait passer le curseur vers une ligne prédéfinie (Vertical tab) Caractères de commande
0001100 C 12 FF Demande un saut de page (Form teed) Caractères de commande
0001101 D 13 CR Remet le curseur à la première position de la ligne (Carriage return) Caractères de commande
0001110 E 14 SO Passe sur une représentation spéciale (Shift out) Caractères de commande
0001111 F 15 SI Remet la présentation en mode normal (Shift in) Caractères de commande
0010000 10 16 DLE L’interprétation des caractères suivants est modifiée (Data link escape) Caractères de commande
0010001 11 17 DC1 Caractères de contrôle qui sont assignés en fonction de l’appareil utilisé pour déclencher des fonctions spécifiques (Device control) Caractères de commande
0010010 12 18 DC2 Caractères de contrôle qui sont assignés en fonction de l’appareil utilisé pour déclencher des fonctions spécifiques (Device control) Caractères de commande
0010011 13 19 DC3 Caractères de contrôle qui sont assignés en fonction de l’appareil utilisé pour déclencher des fonctions spécifiques (Device control) Caractères de commande
0010100 14 20 DC4 Caractères de contrôle qui sont assignés en fonction de l’appareil utilisé pour déclencher des fonctions spécifiques (Device control) Caractères de commande
0010101 15 21 NAK Réponse négative à une question (Negative acknowledge) Caractères de commande
0010110 16 22 SYN Synchronise la transmission des données, même si aucun signal n'est transmis (Synchronous idle) Caractères de commande
0010111 17 23 ETB Marque la fin d’un bloc de transmission (End of transmission block) Caractères de commande
0011000 18 24 CAN Indique qu’une connexion est erronée et que les données doivent être rejetées (Cancel) Caractères de commande
0011001 19 25 EM Affiche la fin du support de stockage (End of medium) Caractères de commande
0011010 1A 26 SUB Remplacement d’un caractère incorrect (Substitute) Caractères de commande
0011011 1B 27 ESC Initie une séquence d’échappement et donne une signification particulière aux caractères suivants (Escape) Caractères de commande
0011100 1C 28 FS Marque la séparation des blocs de données logiques, organisée hierarchiquement : file comme unité la plus grande ; unit comme la plus petite (File separator, Group separator, Record separator, Unit separator) Caractères de commande
0011101 1D 29 GS Marque la séparation des blocs de données logiques, organisée hierarchiquement : file comme unité la plus grande ; unit comme la plus petite (File separator, Group separator, Record separator, Unit separator) Caractères de commande
0011110 1E 30 RS Marque la séparation des blocs de données logiques, organisée hierarchiquement : file comme unité la plus grande ; unit comme la plus petite (File separator, Group separator, Record separator, Unit separator) Caractères de commande
0011111 1F 31 US Marque la séparation des blocs de données logiques, organisée hierarchiquement : file comme unité la plus grande ; unit comme la plus petite (File separator, Group separator, Record separator, Unit separator) Caractères de commande
0100000 20 32 SP Caractère vide (Space) Caractères spéciaux
0100001 21 33 ! Point d‘exclamation Caractères spéciaux
0100010 22 34   Guillemets pour citations Caractères spéciaux
0100011 23 35 # Dièse Caractères spéciaux
0100100 24 36 $ Signe Dollar Caractères spéciaux
0100101 25 37 % Signe pourcentage Caractères spéciaux
0100110 26 38 & « et » commercial Caractères spéciaux
0100111 27 39   Apostrophe Caractères spéciaux
0101000 28 40 ( Parenthèse gauche Caractères spéciaux
0101001 29 41 ) Parenthèse droite Caractères spéciaux
0101010 2A 42 * Etoile / Astérisque Caractères spéciaux
0101011 2B 43 + Signe plus Caractères spéciaux
0101100 2C 44 , Virgule Caractères spéciaux
0101101 2D 45 - Trait d‘union Caractères spéciaux
0101110 2E 46 . Point (fin de phrase) Caractères spéciaux
0101111 2F 47 / Barre oblique Caractères spéciaux
0110000 30 48 0   Chiffres
0110001 31 49 1   Chiffres
0110010 32 50 2   Chiffres
0110011 33 51 3   Chiffres
0110100 34 52 4   Chiffres
0110101 35 53 5   Chiffres
0110110 36 54 6   Chiffres
0110111 37 55 7   Chiffres
0111000 38 56 8   Chiffres
0111001 39 57 9   Chiffres
0111010 3A 58 : Douple point Caractères spéciaux
0111011 3B 59 ; Point-virgule Caractères spéciaux
0111100 3C 60 < Plus petit que Caractères spéciaux
0111101 3D 61 = Égal à Caractères spéciaux
0111110 3E 62 > Plus grand que Caractères spéciaux
0111111 3F 63 ? Point d‘interrogation Caractères spéciaux
1000000 40 64 @ Arobase (at) Caractères spéciaux
1000001 41 65 A   Lettres majuscules
1000010 42 66 B   Lettres majuscules
1000011 43 67 C   Lettres majuscules
1000100 44 68 D   Lettres majuscules
1000101 45 69 E   Lettres majuscules
1000110 46 70 F   Lettres majuscules
1000111 47 71 G   Lettres majuscules
1001000 48 72 H   Lettres majuscules
1001001 49 73 I   Lettres majuscules
1001010 4A 74 J   Lettres majuscules
1001011 4B 75 K   Lettres majuscules
1001100 4C 76 L   Lettres majuscules
1001101 4D 77 M   Lettres majuscules
1001110 4E 78 N   Lettres majuscules
1001111 4F 79 O   Lettres majuscules
1010000 50 80 P   Lettres majuscules
1010001 51 81 Q   Lettres majuscules
1010010 52 82 R   Lettres majuscules
1010011 53 83 S   Lettres majuscules
1010100 54 84 T   Lettres majuscules
1010101 55 85 U   Lettres majuscules
1010110 56 86 V   Lettres majuscules
1010111 57 87 W   Lettres majuscules
1011000 58 88 X   Lettres majuscules
1011001 59 89 Y   Lettres majuscules
1011010 5A 90 Z   Lettres majuscules
1011011 5B 91 [ Crochet gauche Caractères spéciaux
1011100 5C 92 \ Barre oblique inversée (Backslash) Caractères spéciaux
1011101 5D 93 ] Crochet droit Caractères spéciaux
1011110 5E 94 ^ Accent circonflexe Caractères spéciaux
1011111 5F 95 _ Trait d’union (bas) Caractères spéciaux
1100000 60 96 ` Accent grave (Backtick) Caractères spéciaux
1100001 61 97 a   Lettres minuscules
1100010 62 98 b   Lettres minuscules
1100011 63 99 c   Lettres minuscules
1100100 64 100 d   Lettres minuscules
1100101 65 101 e   Lettres minuscules
1100110 66 102 f   Lettres minuscules
1100111 67 103 g   Lettres minuscules
1101000 68 104 h   Lettres minuscules
1101001 69 105 i   Lettres minuscules
1101010 6A 106 j   Lettres minuscules
1101011 6B 107 k   Lettres minuscules
1101100 6C 108 l   Lettres minuscules
1101101 6D 109 m   Lettres minuscules
1101110 6E 110 n   Lettres minuscules
1101111 6F 111 o   Lettres minuscules
1110000 70 112 p   Lettres minuscules
1110001 71 113 q   Lettres minuscules
1110010 72 114 r   Lettres minuscules
1110011 73 115 s   Lettres minuscules
1110100 74 116 t   Lettres minuscules
1110101 75 117 u   Lettres minuscules
1110110 76 118 v   Lettres minuscules
1110111 77 119 w   Lettres minuscules
1111000 78 120 x   Lettres minuscules
1111001 79 121 y   Lettres minuscules
1111010 7A 122 z   Lettres minuscules
1111011 7B 123 { Accolade gauche Caractères spéciaux
1111100 7C 124 l Ligne verticale (Pipe) Caractères spéciaux
1111101 7D 125 } Accolade droite Caractères spéciaux
1111110 7E 126 ~ Tilde Caractères spéciaux
1111111 7F 127 DEL Supprime un caractère. Comme ce caractère de contrôle est composé du même numéro sur toutes les positions, il a été possible d’invalider un autre caractère le temps que l’autre est manquant, en poinçonnant toutes les positions (Delete) Caractères de contrôle

Le huitième bit (si une version étendue l'utilise, sinon il est mis à zéro) est affecté différemment d'un programme à l'autre. Dans la plupart des cas, le poste supplémentaire est utilisé pour répondre aux besoins nationaux. Cependant, les 128 premiers caractères sont toujours conservés dans leur forme originale.

Exemple : traduire les caractères ASCII

Avec ASCII, le système convertit les nombres binaires en caractères imprimables et non imprimables selon une norme spécifiée, comme indiqué dans le tableau ci-dessus. Les utilisateurs peuvent également effectuer ces processus de calcul sans outils. Tout ce que vous avez à faire est de comprendre comment calculer les valeurs binaires ou hexadécimales. Dans un système numérique, chaque chiffre correspond à la puissance d'une certaine base : dans le système décimal, la base est 10 ; dans les systèmes binaires et hexadécimaux, les bases sont respectivement 2 ou 16, et la valeur du chiffre est ensuite multipliée par la valeur du chiffre.

Valeur des chiffres dans le système décimal :

Système décimal

100

101

102

103

1

10

100

1000

Par conséquent, les dispositions suivantes s’appliquent :

7304 = 7 * 10³ + 3 * 10² + 0 * 10¹ + 4 * 10⁰

Ceci fonctionne également de manière analogue dans les deux autres systèmes :

Système binaire

20

21

22

23

1

2

4

8

Il n’y a toutefois que deux chiffres ici :

1011 ≙1 * 2³ + 0 * 2² + 1 * 2¹ + 1 * 2⁰ = 11

Système hexadécimal

160

161

162

163

1

16

256

4096

Puisqu'il y a 16 chiffres, ce qui suit s'applique :

F1A9 ≙ 15 * 16³ + 1 * 16² + 10 * 16¹ + 9 * 16⁰ = 61865

Avec cette connaissance et le tableau ASCII, les chaînes de caractères ASCII peuvent être converties en n'importe quel système numérique, ici avec l'exemple de "Digital":

« D » correspond dans le tableau ASCII à la valeur décimale  68, donc :

68 = 1 * 2⁶ + 1 * 2² ≙ 1000100

68 = 4 * 16¹ + 4 * 16⁰ ≙ 44

« i » correspond à la valeur décimale 105, donc :

105 = 1 * 2⁶ + 1 * 2⁵ + 1 * 2³ + 1 * 2⁰ ≙ 1101001

105 = 6 * 16¹ + 9 * 16⁰ ≙ 69

« g » correspond à la valeur décimale 103, donc :

103 = 1 * 2⁶ + 1 * 2⁵ + 1 * 2² + 1 * 2¹ + 1 * 2⁰ ≙ 1100111

103 = 6 * 16¹ + 7 * 16⁰ ≙ 67

« i » correspond à la valeur décimale 105, donc :

105 = 1 * 2⁶ + 1 * 2⁵ + 1 * 2³ + 1 * 2⁰ ≙ 1101001

105 = 6 * 16¹ + 9 * 16⁰ ≙ 69

« t » correspond à la valeur décimale 116, donc :

116 = 1 * 2⁶ + 1 * 2⁵ + 1 * 2⁴ + 1 * 2² ≙ 1110100

116 = 7 * 16¹ + 4 * 16⁰ ≙ 74

« a » correspond à la valeur décimale 97, donc :

97 = 1 * 2⁶ + 1 * 2⁵ + 1 * 2⁰ ≙ 1100001

97 = 6 * 16¹ + 1 * 16⁰ ≙ 61

« l » correspond à la valeur décimale 108, donc :

108 = 1 * 2⁶ + 1* 2⁵ + 1 * 2³ + 1 * 2² ≙ 1101100

108 = 6 * 16¹ + 12 * 16⁰ ≙ 6C

Par conséquent, le mot exemple peut être représenté comme suit :

Caractère D i g i t a l
Dec 68 105 103 105 116 97 108
Bin 1000100 1101001 1100111 1101001 1110100 1100001 1101100
Hex 44 69 67 69 74 61 6C
Conseil

Sous Windows, vous pouvez saisir des caractères Unicode, et donc aussi des caractères ASCII, à l’aide d’une combinaison de touches. Pour ce faire, maintenez la touche Alt enfoncée et saisissez la valeur décimale du caractère à l’aide du pavé numérique.

Code ASCII : domaines d’application

Même aujourd'hui, ASCII est encore largement utilisé, bien qu’UTF-8 soit probablement devenu plus important pour la représentation du texte. Cependant, ce n'est qu'aux alentours de 2008 que l'Unicode a remplacé le codage de caractères plus ancien dans le World Wide Web.

L'avantage d’UTF-8 est que le code est virtuellement rétro-compatible : ASCII est un sous-ensemble d’UTF-8 et donc les 128 premiers caractères sont identiques. Étant donné que l'ASCII peut être considéré comme le plus petit dénominateur commun de la plupart des nouveaux formulaires de codage, l'ancien codage est toujours utilisé dans les courriels et les URL.

Remarque

Bien entendu, les utilisateurs peuvent maintenant également utiliser Unicode pour créer des e-mails, et les noms de domaine peuvent même être utilisés aujourd'hui grâce aux noms de domaine internationalisés. Dans les deux cas, cependant, le texte doit être converti au format ASCII avant de pouvoir être transféré. Ceci est fait automatiquement, de sorte que l'utilisateur ne remarque rien.

De plus, l'ASCII a longtemps été utilisé à des fins plus artistiques que techniques : ASCII est un art qui utilise uniquement des caractères imprimables de la table ASCII pour créer des images. Le spectre s'étend du lettrage aux tableaux réels en passant par des simples figures de lignes. Les artistes ASCII utilisent pour cela les différents niveaux de luminosité des caractères individuels. Même les ombres peuvent être affichées de cette façon.