Le codage binaire
Le code binaire naturel ou code binaire pur
Le code binaire naturel est tout simplement le système de numération à base 2. On l'utilise pour représenter les entiers naturels.

Ce code présente l'inconvénient de changer souvent plus qu'un seul bit quand on passe d'un nombre à son successeur (voir le tableau ci-dessus).
Le code binaire réfléchi ou code de Gray
Dans les conversions d'une grandeur analogique en une grandeur numérique, nous avons besoin d'un code dans lequel les grandeurs successives ne différent que d'un caractère. Cela évite les erreurs de transmission. Dans le système binaire naturel, on peut remarquer que lors du passage de la valeur sept (7) à la valeur huit (8), c'est-à-dire le passage de 0111 à 1000, les quartes bits changent en même temps. S'il y a un problème de synchronisation, on peut détecter des valeurs erronées [1] [2] [3]. Le code de Gray est inventé afin d'éviter ce genre de problèmes. Il encode les entiers de telle façon que le passage d'un nombre au suivant ne change qu'un seul bit à la fois. On le retrouve également dans certains systèmes de télécommunication pour la correction d'erreur. Le tableau ci-dessous donne l'équivalent en code Gray des entiers de 0 à15 ainsi que leur équivalent en binaire.

Le nom du code gray ou binaire réfléchi (BR en abrégé) veut dire que les bits du code Gray peuvent être générés par réflexion (comme une réflexion dans un miroir) comme l'illustre le tableau suivant, puis on rajoute un 0 puis un 1 au début (à gauche) de chacun des codes. On a ainsi doublé le nombre de codes formés.
Remarque : Le code de Gray est fréquemment utilisé dans les capteurs angulaires ou de positionnement. On l'utilise aussi, quand on veut construire un code numérique binaire sans parasite transitoire, par exemple lorsque les palpeurs passent de la position 3 à la position 4, un codage binaire pur risque d'introduire des états transitoires parasites si les digits ne changent pas rigoureusement simultanément.
Règle : Conversion du code binaire en code Gray :
Pour convertir un nombre binaire en code de Gray :
Le bit le plus significatif de code Gray, situé le plus à gauche, est égal au MSB[4] du code binaire pur.
Commençant à gauche, on somme sans prendre en considération la retenue, toute paire de bits adjacents pour obtenir le bit[5] suivant de code Gray.
Par exemple, convertir le nombre binaire 11000110 en code Gray :
Règle : Conversion du code Gray en code binaire :
Inversement, pour passer du code Gray au binaire naturel :
Le bit le plus significatif de code Gray, situé le plus à gauche, est égal au MSB[4] du code binaire pur.
Commençant à gauche, additionnez tout nouveau bit du binaire au bit suivant du code Gray, en négligeant la retenue, pour obtenir le bit suivant du code Gray.
Le code BCD
Le code BCD abréviation du (Binary Coded Decimal) fait correspondre au chiffres de la, base 10 (de 0 à 9) l'équivalent de leurs valeurs en binaire sur quatre bits. Ainsi, chaque nombre exprimé en base 10 sera code en BCD en remplaçant chaque chiffre décimale par son équivalent binaire sur quatre bits selon le tableau ci-dessous. Ce code BCD est utilisé dans les systèmes numériques.
Exemples:
Le nombre décimal 978 sera codé en BCD comme suit :
Décimal 9 7 2 → BCD 1001 0111 1000
Le code BCD 1000 0010 0111 représente l'entier :
BCD 1000 0010 0111 → Décimal 8 2 7
Comme on peut le constater, dans le code BCD, il y a des configurations binaires non exploitées. En effet, sachant que le nombre de chiffres dans la base 10 est justement 10 et sachant par ailleurs que le nombre de configurations que l'on peut représenter avec 4 chiffres est 16, on déduit qu'il y 6 configurations non utilisées comme montré dans le tableau suivant :

Les opérations arithmétiques sont assez compliquées en BCD. Cependant, une règle de base stipule que lors de l'addition de deux nombres écrits suivant le code BCD, si le résultat ne comporte pas de configurations non autorisées, alors il est correct sinon il ne l'est pas. Dans ce dernier cas, il faut rajouter la valeur 6 (égal à 0110 en BCD) au résultat et cela pour chaque configuration non autorisée.
Exemples: En décimal : 15 + 16 = 31
En BCD : (0001 0101) + (0001 0110) = (0010 1011).
On voit que le résultat en BCD (0010 1011) comporte une configuration non autorisée (1011). Pour le corriger, il faut additionner à cette configuration le chiffre 6 (0110). Ceci va nous donner (0010 1011) + (0110) = (0011 0001) BCD ce qui donne bien 31 en décimal.
Remarque : Le principal avantage de ce code est qu'il permet des conversions faciles entre les nombres BCD et les nombres décimaux. Ce code est utilisé principalement pour les afficheurs 7 segments. On le retrouve également pour l'adressage et les données des capteurs selon les constructeurs sur les bus série (I2C, SPI, ...).
Le code à excès 3
Le code à excès de trois (Excess 3 noté XS-3 en abrégé) s'obtient en ajoutant 3 à chaque quartet du code BCD.
Comme son nom l'indique, le code à excès de trois (Excess 3 noté XS-3 en abrégé) consiste à calculer pour chaque chiffre décimal (de 0 à 9) son code BCD, puis lui ajouter la valeur 3.

Exemples:
Écrivons le code XS-3 du nombre décimal 568.
Décimal 5 6 8 → XS-3 1000 1001 1011
Décodons le nombre écrit en XS-3 1010 1100 0011
XS-3 1010 1100 0011 → BCD 0111 1001 0000 → Décimal 7 9 0
Remarque: Le code à excès de trois a été créé pour permettre la réalisation simple des opérations de soustraction.