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.

Clavier d'un digicode (porte d'entrée)

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 :

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.

Information

Outil proposé par electro-robot : le convertisseur de code Gray

Pour vous initier à ce code assez particulier, electro-robot vous met à disposition un convertisseur de code Gray qui vous permet de convertir entre le binaire réfléchi et les deux systèmes binaire et décimal.

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 :

  1. É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 :

Code Gray (étape 1)

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

Code Gray (étape 2)

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

Code Gray (étape 3)

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 :

Conversion 1038 en BCD

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.