Les codes et le codage
Dans le monde de l'informatique et de l'électronique numérique, nous pouvons retrouver plusieurs autres systèmes de codage pour coder un signal électrique. Par exemple, un clavier d'un ordinateur porte des touches et sur chaque touche une lettre, un chiffre ou un symbole est inscrit. A chaque fois que nous appuyons sur une touche, une information numérique codée suivant un système de codage bien précis est envoyé vers l'unité centrale.
C'est dans ce contexte que nous pouvons retrouver d'autres systèmes de codage, qui se basent indirectement sur un des systèmes de numérotation cités dans un cours précédent.
Les systèmes de codage
Pour coder et véhiculer une information numérique dans un système électrique ou électronique, nous choisissons le système de codage nécessaire pour son bon fonctionnement. Prenons l'exemple d'une calculatrice, ou un pupitre d'authentification d'une porte d'entrée (La photo ci-dessous nous montre un exemple d'un clavier d'un digicode électrique proposée par Danielle Rice sur Unsplash), pour coder l'information, nous n'aurons besoin de coder uniquement les chiffres et dans certains cas quelques lettres.

Ainsi, pour qu'un système numérique fonctionne, les différentes parties prenantes doivent arriver à coder et à décoder l'information envoyée ou reçue. Par exemple, lorsque vous envoyez un message codé dans un système de codage bien précis à votre collège. Votre collègue doit avoir la table de décodage pour pouvoir déchiffrer votre message sinon il est impossible pour lui de vous comprendre. Ainsi, les différents systèmes de codes fonctionnent.
Les codes
Le code numérique
Pour ce type de codage, il existe plusieurs systèmes de code dans le monde de l'électronique numérique. Nous allons étudier ensemble les plus connus à citer :
- Le code binaire naturel, appelé aussi le code pur
- Le code binaire réfléchi, appelé aussi le code Gray.
- Le code BCD, pour son nom en anglais Binary Coded Decimal.
Ainsi, dans la suite de notre cours, nous allons détailler ces différents systèmes de code afin de les découvrir ensemble.
Le code binaire naturel (pur)
Le code binaire naturel, appelé aussi le code pur, est une représentation électrique permettant de traduire, de transformer ou d'écrire une donnée quelconque sous forme d'un nombre utilisant deux états électriques possibles, soit :
- La valeur 0 pour l'absence de passage de courant électrique,
- La valeur 1 pour la présence d'un passage de courant électrique.
Ainsi, le système binaire est une représentation parfaite du système de numérotation décimal. Pour modéliser la valeur de 3 en décimal dans un système binaire, nous l'écrivons sous forme de 11, soit donc a=1 et b=1 si notre représentation est modélisée sous 2 bits. Et pour écrire le nombre 4 en décimal sous une forme binaire, il nous faut rajouter un 3ème digit (appelé aussi bit) que nous appelons c, soit donc abc pour notre représentation, ce qui nous permet d'écrire (4)10 = (100)2. Le tableau ci-dessous nous montre cette conversion des 10 chiffres en code binaire naturel :
| Chiffre | code binaire |
| 0 | 0000 |
| 1 | 0001 |
| 2 | 0010 |
| 3 | 0011 |
| 4 | 0100 |
| 5 | 0101 |
| 6 | 0110 |
| 7 | 0111 |
| 8 | 1000 |
| 9 | 1001 |
Ainsi, pour modéliser des lettres ou des caractères spéciaux, nous pouvons les coder en fonction de notre besoin. En général, si nous n'utilisons pas un système de codage standard, ou universel, un code sur meure est créé pour notre besoin. Pour le système du digicode, présenté ci-dessus, si nous regardons en détails son pupitre, les chiffres 0 à 9 ainsi les deux caractères * et # constituent son clavier. Pour modéliser cela dans une forme binaire, nous aurons besoin d'un système de 4 bits pour coder les différentes valeurs. Le tableau ci-dessous nous détaille cela :
| Code | code binaire |
| 0 | 0000 |
| 1 | 0001 |
| 2 | 0010 |
| 3 | 0011 |
| 4 | 0100 |
| 5 | 0101 |
| 6 | 0110 |
| 7 | 0111 |
| 8 | 1000 |
| 9 | 1001 |
| * | 1010 |
| # | 1011 |
Le code binaire réfléchi (Gray)
Le code binaire réfléchi, appelé aussi le code Gray, est un code non pondéré. Autrement dit, chaque digit (appelé aussi bit), ne représente pas une pondération comme dans le système binaire. Pour incrémenter d'une valeur à une autre, le système Gray stipule que le changement binaire ne s'accompagne qu'un seul changement d'un seul digit dans le mot binaire. Plus simplement, le code Gray est une suite de mots binaires où deux mots successifs ne diffèrent que d’un seul bit.
Pour mieux comprendre cela, nous vous présentons le tableau de correspondance entre le système décimal, le système hexadécimal et le système Gray :
| Sys. Décimal | Sys. Hexadécimal |
Code Gray (Binaire réfléchi) |
Sys. Décimal | Sys. Hexadécimal |
Code Gray (Binaire réfléchi) |
| 0 | 0 | 0000 | 8 | 8 | 1100 |
| 1 | 1 | 0001 | 9 | 9 | 1101 |
| 2 | 2 | 0011 | 10 | A | 1111 |
| 3 | 3 | 0010 | 11 | B | 1110 |
| 4 | 4 | 0110 | 12 | C | 1010 |
| 5 | 5 | 0111 | 13 | D | 1011 |
| 6 | 6 | 0101 | 14 | E | 1001 |
| 7 | 7 | 0100 | 15 | F | 1000 |
Comme vous pouvez le constater, lorsqu'on passe d'une valeur à une autre, un seul digit de notre binaire change de valeur quand il est codé dans le code Gray. soit donc un 0 qui devient un 1 ou un 1 qui devient un 0.
Construction du code Gray
Pour construire une séquence en code Gray, nous pouvons utiliser l'une des techniques la plus connue celle de l'effet miroir, appelé aussi principe de réflexion par miroir plan. Cette technique stipule de réaliser une symétrie des mots binaires par une ligne miroir, puis de compléter la partie haute par des 0 et la partie basse par des 1. Pour réaliser le code Gray de 0 à 7, nous allons faire ces 3 étapes :
- Étape 1 : écrivons-nous le 0 puis faisons une ligne miroir. La valeur qui sera au-dessus de la ligne sera forcément 1 puisque notre mot est de 1 seul digit et il doit être différent d'un seul bit. L'image ci-dessous nous détaille cela :

- Étape 2 : mettons une ligne miroir et complétons la partie haute par des 0 et la partie basse par des 1

- Étape 3 : faisons la même itération que l'étape 2 pour le résultat obtenu précédemment.

Le code BCD (Binary Coded Décimal)
Le code BCD est le code le plus utilisé en électronique numérique vu sa simplicité à l'implémenter. Il est côdé dans un principe de découpage décimal chiffre par chiffre en mots binaires de 4 bits (quartets) puisque un nombre décimal ne peut être constitué qu'à partir des 10 chiffres (soit 0, 1, .. 9). C'est pour ce principe que ce système de codage est simple et facile. Ce qui le laisse le système de codage le plus utilisé lorsqu'on veut afficher des nombres dans le système de numérotation décimal.
Pour comprendre cela, nous vous présentons le tableau de correspondance ci-dessous entre chaque code exprimé dans le système décimal et son équivalent écrit en code BCD :
| Chiffre dans le système Décimal |
Code BCD |
| 0 | 0000 |
| 1 | 0001 |
| 2 | 0010 |
| 3 | 0011 |
| 4 | 0100 |
| 5 | 0101 |
| 6 | 0110 |
| 7 | 0111 |
| 8 | 1000 |
| 9 | 1001 |
Comme vous pouvez le remarquer, pour coder le chiffre le plus grand, soit le chiffre 9, nous avons besoin de 4 bits. C'est pour cela que le reste des chiffres sont codés sur 4 bits dans ce système de codage. Ainsi, le nombre décimal 1038 sera écrit en code BCD comme suit : 0001 000 0011 0100. L'image ci-dessous nous détaille cela :

Le code alphanumérique
Un code alphanumérique est un système de codage qui combine des lettres, des chiffres et dans certains cas des caractères spéciaux. C'est ainsi, à partir d'une table de représentation que nous pouvons coder électriquement chaque caractère représentatif.
Le code ASCII
Par exemple, le code ASCII, pour l'abréviation American Standard Code for Information Interchange est le système le plus utilisé dans nos ordinateurs d'aujourd'hui pour représenter un texte dans son état brut. Dans sa structure simplifiée du code ASCII, représentée sur 7 bits, nous retrouvons l'ensemble des caractères nécessaires pour écrire un texte à citer :
- Du caractère 0 à 31 : des caractères de contrôle comme le caractère Null, le retour chariot, la tabulation, ...
- de 32 à 47 : les caractères spéciaux,
- de 48 à 57 : les chiffres de 0 à 9,
- de 65 à 90 : les lettres sous leurs formes majuscules,
- et de 97 à122 : les lettres sous leurs formes minuscules.
Pour découvrir cette la la table ASCII et prendre connaissance, vous trouverez ci-dessous une copie :
| Code | Symbol (Char) | Code | Symbol (Char) | Code | Symbol (Char) | Code | Symbol (Char) |
|---|---|---|---|---|---|---|---|
| 0 | NUL | 1 | SOH | 2 | STH | 3 | ETX |
| 4 | EOT | 5 | ENQ | 6 | ACK | 7 | BEL |
| 8 | BS | 9 | TAB | 10 | LF | 11 | VT |
| 12 | FF | 13 | CR | 14 | SO | 15 | SI |
| 16 | DLE | 17 | DC1 | 18 | DC2 | 19 | DC3 |
| 20 | DC4 | 21 | NAK | 22 | SYN | 23 | ETB |
| 24 | CAN | 25 | EM | 26 | SUB | 27 | ESC |
| 28 | FS | 29 | GS | 30 | RS | 31 | US |
| 32 | SPACE | 33 | ! | 34 | " | 35 | # |
| 36 | $ | 37 | % | 38 | & | 39 | ' |
| 40 | ( | 41 | ) | 42 | * | 43 | + |
| 44 | , | 45 | - | 46 | . | 47 | / |
| 48 | 0 | 49 | 1 | 50 | 2 | 51 | 3 |
| 52 | 4 | 53 | 5 | 54 | 6 | 55 | 7 |
| 56 | 8 | 57 | 9 | 58 | : | 59 | ; |
| 60 | < | 61 | = | 62 | > | 63 | ? |
| 64 | @ | 65 | A | 66 | B | 67 | C |
| 68 | D | 69 | E | 70 | F | 71 | G |
| 72 | H | 73 | I | 74 | J | 75 | K |
| 76 | L | 77 | M | 78 | N | 79 | O |
| 80 | P | 81 | Q | 82 | R | 83 | S |
| 84 | T | 85 | U | 86 | V | 87 | W |
| 88 | X | 89 | Y | 90 | Z | 91 | [ |
| 92 | \ | 93 | ] | 94 | ^ | 95 | _ |
| 96 | ` | 97 | a | 98 | b | 99 | c |
| 100 | d | 101 | e | 102 | f | 103 | g |
| 104 | h | 105 | i | 106 | j | 107 | k |
| 108 | l | 109 | m | 110 | n | 111 | o |
| 112 | p | 113 | q | 114 | r | 115 | s |
| 116 | t | 117 | u | 118 | v | 119 | w |
| 120 | x | 121 | y | 122 | z | 123 | { |
| 124 | | | 125 | } | 126 | ~ | 127 | DEL |
Autres systèmes de codes alphanumériques
Il est également à noter qu'il existe plusieurs autres systèmes de code alphanumérique mis en place pour répondre à différents besoins spécifiques tels que :
- Base32 : pour la représentation des 26 lettres dans leur représentation majuscules uniquement et des 6 chiffres de 2 à 7.
- Base36 : pour la représentation des 26 lettres dans leurs formes majuscules uniquement et des 10 chiffres de 0 à 9.
- Base58 : pour la représentation des 26 lettres dans leurs formes minuscule et majuscules à l'exception des deux lettres o et i en majuscule et la lettre l en minuscule et des 9 chiffres de 1 à 9.
- ASCII étendu : appelé aussi extended ASCII représenté sur 8 bits, désigne une variante de la table ASCII standard, qui ajoutent des caractères supplémentaires indexés de 128 à 255.