Vous êtes sur la page 1sur 16

Chapitre 1

Les systèmes de numérotations, codes et arithmétiques


binaires

I. Introduction
II. Représentation des nombres
III. Changement de base
IV. Nombres à virgule flottante
V. Arithmétique binaire
VI. Ecriture des nombres signés
VII. Codes
I. Introduction
Le système de numération binaire est le plus important de ceux utilisés dans les circuits
numériques, bien qu'il ne faille pas pour autant négliger l'importance d'autres systèmes. Le
système décimal revêt de l'importance en raison de son acceptation universelle pour représenter
les grandeurs du monde courant. De ce fait, il faudra parfois que des valeurs décimales soient
converties en valeurs binaires avant d'être introduites dans le circuit numérique. Par exemple,
lorsque vous composez un nombre décimal sur votre calculatrice (ou sur le clavier de votre
ordinateur), les circuits internes convertissent ce nombre décimal en une valeur binaire.
De même, il y aura des situations où des valeurs binaires données par un circuit numérique
devront être converties en valeurs décimales pour qu'on puisse les lire. Par exemple, une
calculatrice (ou un ordinateur) calcule la réponse à un problème au moyen du système binaire
puis convertit ces réponses en des valeurs décimales avant de les afficher.
II. Représentation des nombres
Les systèmes de numérotation sont utilisés pour compter des objets et de les représenter par
des nombres. Trois notions interviennent dans un système de numérotation :
- La base « b » du système, c’est un nombre entier quelconque
- Les digits du système sont des caractères tous différents et représentent chacun un
élément de la base ; il y en a donc « b » au total
- Poids du digit dépend de sa position dans le nombre
L’écriture d’un nombre N dans la base « b » s’écrit :

(𝑁)𝑏 = (𝑎𝑛 … 𝑎3 𝑎2 𝑎1 𝑎0 )𝑏
Sa représentation polynomiale est :

(𝑁)𝑏 = 𝑎0 . 𝑏 0 + 𝑎1 . 𝑏1 + 𝑎2 . 𝑏 2 + 𝑎3 . 𝑏 3 + ⋯ + 𝑎𝑛 . 𝑏 𝑛
D’une façon générale, dans un système de numération à base « b », un nombre « N » de base
« b » sera décomposable en fonction des puissances entières de « b » tel que :
𝑖=𝑛

𝑁𝑏 = ∑ 𝑎𝑖 . 𝑏 𝑖
𝑖=0
Avec : 0 ≤ 𝑎𝑖 ≤ 𝑏 − 1, 𝑎0 est le digit le moins fort (MSB), 𝑎𝑛 le digit le plus fort (LSB)
La base que nous connaissons le mieux est le système décimal. Cependant, elle est
malheureusement difficile de concevoir du point de vue matériel électronique. Il existe d’autres
formes de numérotation : les systèmes binaire, octale et hexadécimal.
- En base 10, nous avons les 10 symboles : 0, 1, ..., 9
- En base 2, nous avons les 2 symboles : 0, 1
- En base 8, nous avons les 8 symboles : 0, 1, …, 7
- En base 16, nous avons besoin de 16 symboles, nous utiliserons les 10 chiffres plus les
lettres de A à F, soit : 0, 1, …, 9, A, B, C, D, E, F
Dans un système numérique, il peut arriver que trois ou quatre de ces systèmes de
numération cohabitent, d’où l’importance de pouvoir convertir un système dans un autre.
II.1. Système décimal
Le système décimal comprend 10 nombres ou symboles qui sont 0, 1, 2, 3,4, 5, 6, 7, 8, 9 ;
en utilisant ces symboles comme chiffres dans un nombre, on parvient à exprimer n’importe
quelle grandeur. Le système décimal, appelé aussi système à base de 10, s’est imposé tout
naturellement à l’homme puisque ce dernier possède dix doigts.
Le système décimal est dit à poids positionnels, en ce sens que la valeur d’un chiffre dépend
de sa position (rang) dans le nombre.
Exemple :

(3567)10 = 3. 103 + 5. 102 + 6. 101 + 7. 100


On note que le chiffre 3 est celui qui a le poids le plus élevé (MSB) et le chiffre 7 a le poids
le plus faible (LSB).
II.2. Système binaire
La numération en base 2 ou numération binaire utilise deux symboles : 0 et 1. Cette base est
très pratique dans les circuits électroniques pour distinguer deux états logiques. On écrit :

Niveau Logique « 1 » Oui Vrai Ouvert Marche Haut Allumé Saturé


Niveau Logique « 0 » Non Faux Fermé Arrêt Bas Eteint Bloqué

La position du 1 ou du 0 dans un nombre binaire indique son poids positionnel et détermine


sa valeur dans le nombre, tout comme nous l’avons vu pour le système décimal. Dans un
nombre binaire, les poids positionnels correspondent à des puissances de 2.
Exemple :

(1101,011)2 = 1. 23 + 1. 22 + 0. 21 + 1. 20 + 0. 2−1 + 1. 2−2 + 1. 2−3


Avec 23 le poids le plus élevé (MSB) et 2−3 le poids le plus faible (LSB).

Les différentes puissances de 2 sont :

𝟐𝟎 𝟐𝟏 𝟐𝟐 𝟐𝟑 𝟐𝟒 𝟐𝟓 𝟐𝟔 𝟐𝟕 𝟐𝟖 𝟐𝟗 𝟐𝟏𝟎

1 2 4 8 16 32 64 128 256 512 1024

Un nombre binaire composé de 4 bits s’appelle un quartet. Un nombre binaire composé de


8 bits s’appelle un octet et peut prendre des valeurs (décimales) de 0 à 255. Cette taille a son
importance car c’est ce que peut contenir une case mémoire. Deux cases mémoire ensemble
peuvent contenir 16 bits (permettant de stocker une valeur entre 0 et 65 535) et s’appellent
parfois « mot binaire », un long mot étant alors quatre cases mémoire, soit 4 octets.

Ils existent deux autres systèmes de numération très répandus dans les circuits numériques.
II s'agit des systèmes de numération octal (base de 8) et hexadécimal (base de 16) qui
constituent un outil efficace pour représenter de gros nombres binaires.

II.3.Système octal
Le système de numération octal a comme base huit (base 8), ce qui signifie qu'il comprend
huit symboles possibles, soit 0, 1, 2, 3, 4, 5, 6 et 7. Ainsi, chaque chiffre dans un nombre octal
a une valeur comprise entre 0 et 7. Voici les poids de chacune des positions d'un nombre octal.
Exemple :

(127,65)8 = 1. 82 + 2. 81 + 7. 80 + 6. 8−1 + 5. 8−2 = (87,828125)10


L’intérêt de ce système est que la base 8 est une puissance de 2 (8 = 23 ), donc le poids sont
aussi des puissances de 2. Chaque symbole de la base 8 est exprimé sur 3 éléments binaires :

(𝑎𝑖 )8 = 𝑏𝑖2 𝑏𝑖1 𝑏𝑖0


II.4.Système hexadécimal
Le système hexadécimal a comme base 16, ce qui implique 16 symboles de chiffres
possibles, qui, dans ce cas, sont les dix chiffres 0 à 9 plus les lettres majuscules A, B, C, D, E
et F. Le tableau ci-dessous expose les rapports entre les systèmes hexadécimal, décimal et
binaire. Chaque chiffre hexadécimal a comme équivalent binaire un groupe de quatre bits.

Décimal Hexadécimal Binaire Décimal Hexadécimal Binaire


0 0 0000 8 8 1000
1 1 0001 9 9 1001
2 2 0010 10 A 1010
3 3 0011 11 B 1011
4 4 0100 12 C 1100
5 5 0101 13 D 1101
6 6 0110 14 E 1110
7 7 0111 15 F 1111
Exemple :

(1𝐴7,6)16 = 1. 162 + 10. 161 + 7. 160 + 6. 8−1 = (423,375)10 = (110100111,0110)2

L’intérêt de ce système est que la base 8 est une puissance de 2 (16 = 24 ), donc le poids
sont aussi des puissances de 2. Chaque symbole de la base 16 est exprimé sur 4 éléments
binaires :

(𝑎𝑖 )16 = 𝑏𝑖3 𝑏𝑖2 𝑏𝑖1 𝑏𝑖0


III. Changement de base
III.1. Nombres entiers positifs
III.1.1. Conversion d’un nombre décimal en une base « b » quelconque
La méthode la plus simple de conversion d’un nombre entier décimal en un nombre de base
« b » est celle de la division par la base b répétée. Par exemple, pour convertir le nombre
décimal N dans la base « b », on commence par diviser N par « b ». Chaque nouveau quotient
est ensuite divisé par « b » jusqu’à ce que le quotient soit 0. Les restes générés par chacune des
divisions forment le nombre N dans la base « b ». Le premier reste produit devient le bit de
poids le plus faible (LSB) du nombre N dans la base « b », alors que le dernier reste produit
devient le bit de poids le plus fort (MSB).

Décimal →
Décimal → Binaire Décimal → Octal
Hexadécimal

(77)10 = (111110100)2 = (1𝐹4)16 = (764)8

III.1.2. Conversion d’un nombre de base « b » quelconque en base décimale


Tout nombre écrit dans une base « b » quelconque peut être transformé en son équivalent
décimal simplement en additionnant les termes obtenus du produit de chaque chiffre par son
poids positionnel.

Binaire → Décimal Hexadécimal → Décimal Octal → Décimal

(1010)2 = (10)10 (40𝐴𝐹)16 = (16559)10 (201)8 = (129)10


III.1.3. Conversion Octale ⬌ Binaire
La conversion octal – binaire s’effectue en transformant chaque chiffre du nombre octal en
son équivalent binaire sur trois bits. L’opération inverse consiste à faire avec le nombre binaire
des groupes de trois bits en partant du chiffre de poids le plus faible, puis de convertir ces
triplets en leur équivalent octal ; au besoin on ajoute des zéros à gauche du bit de poids le plus
fort pour obtenir un nombre juste de triplets.
Exemple :

1/ Convertir (376)8 en binaire

3 7 6 Chiffre octal
011 111 110 Equivalent binaire
(376)8 = (011111110)2

2/ Convertir (1101110011)2 en octal

110 101 110 011 Nombre binaire


1 5 6 3 Equivalent octal
(110101110011)2 = (1563)8

III.1.4. Conversion Hexadémical ⬌ Binaire


La conversion hexadécimal – binaire s’effectue en transformant chaque chiffre du nombre
hexadécimal en son équivalent binaire de quatre chiffres. L’opération inverse consiste à faire
avec le nombre binaire des groupes de quatre bits en partant du chiffre de poids le plus faible,
puis on substitue à chaque groupe son chiffre hexadécimal équivalent ; au besoin on ajoute des
zéros à gauche pour obtenir un dernier groupe de 4 bits.
Exemple :

1/ Convertir (376)16 en binaire

3 7 6 Chiffre hexadécimal
0011 0111 0110 Equivalent binaire
(376)16 = (001101110110)2

2/ Convertir (11101110011)2 en octal

0111 0111 0011 Nombre binaire


7 7 3 Equivalent hexadécimal
(11101110011)2 = (773)16
III.2. Nombres fractionnaires
Exemple : Convertissez le nombre décimal 18,6875 en binaire.
Pour convertir la fraction décimale 0, 6875 en binaire, on commence par multiplier 0,3125
par 2. Nous multiplions ensuite chaque nouveau produit ainsi crée par 2, jusqu’à ce que le
produit fractionnaire soit 0 ou que le nombre de décimales désiré soit atteint. Les chiffres
reportés ou retenues, générés par les multiplications, forment le nombre binaire. La première
retenue produite devient le MSB et la dernière retenue devient le LSB.

- 18 en base 10 s’écrit en base 2 : (10010)2


- 0,6875 en base 10 s’écrit en base 2 :

0,6875 × 2 = 1,375 = 1 + 0,375

0,375 × 2 = 0,75 = 0 + 0,75

0,75 × 2 = 1,5 = 1 + 0,5

0,5 × 2 = 1,375 = 1 + 0

L’équivalent binaire de (18,6875)10 = (10010,1011)2

IV. Nombres à virgule flottante


Il faut beaucoup de bits pour représenter des nombres entiers de très grande valeur. Un autre
problème surgit lorsqu’il faut représenter des nombres possédant une partie entière et une partie
fractionnaire, comme 23,5618. Le système des nombres à virgule flottante, qui repose sur le
principe de notation scientifique, permet de représenter des nombres de très grande ou de très
petite valeur et/ou des nombres possédant une partie entière et une partie fractionnaire sans
augmenter le nombre de bits.
Un nombre à virgule flottante, également appelé nombre réel, comprend deux parties et un
signe. La mantisse est la partie qui représente la grandeur du nombre à virgule flottante.
L’exposant est la partie qui désigne la quantité de rangs avec laquelle la virgule décimale ou
binaire est décalée.
Exemple : Soit le nombre entier décimal 241506800.

La mantisse est 0, 241506800 et l’exposant est 9. Un entier exprimé en nombre à virgule


flottante doit être normalisé, en ce sens qu’il faut déplacer la virgule décimale à la gauche de
tous les chiffres afin que la mantisse devienne un nombre fractionnaire. L’exposant devient
alors une puissance de 10. De cette façon, le nombre à virgule flottante s’écrit :

0, 2415068 × 109
Pour les nombres à virgule flottante binaires, le standard utilisé dans les ordinateurs est
défini par la norme ANSI/IEEE 754-1985 selon un triplet : le bit du Signe (S) est celui situé
à gauche, l’exposant (E) et la mantisse ou partie fractionnaire (F).

S Exposant (E) Mantisse (M)


1 bit p bits q bits

Ce format est défini selon trois notations, fondamentalement identique, à l’exception du


nombre de bits :
- Les nombres à virgule flottante de précision simple possèdent 32 bits
- Les nombres à virgule flottante de précision double ont 64 bits
- Les nombres à virgule flottante de précision étendue comportent 80 bits
La représentation d’un nombre X en format virgule flottante est :

X = ±1, M × 2𝑑é𝑐𝑎𝑙𝑎𝑔𝑒

Les bits de l’exposant représentent un exposant polarisé, obtenu en additionnant « p » à


l’exposant réel. Le but de cette polarisation est de permettre la représentation de nombres de
très grande ou de très petite taille sans recourir à un bit de signe séparé pour les exposants.

E = décalage + 2𝑝−1 − 1

L’exposant polarisé offre une échelle de valeurs comprises entre : -126 et +128 pour
l’exposant en précision simple ; -1022 et +1023 pour l’exposant en précision double ; -16382
et +16383 pour l’exposant en précision étendue.

Précision simple : 32 bits ; p = 8 ; E = décalage + 127


{Précision double : 64 bits ; p = 11 ; E = décalage + 1023
Précision étendue : 80 bits ; p = 15 ; E = décalage + 16383

Exemple : Soit le nombre décimal (8,25)10 en virgule flottante en précision simple

Exprimons d’abord ce nombre en le normalisant. Nous obtenons 1 suivi d’un nombre


fractionnaire binaire en déplaçant la virgule binaire de 3 rangs vers la gauche et le multipliant
ensuite par la puissance de 2 appropriée.

(8,25)10 = 1,00001 × 103


Puisqu’il s’agit d’un nombre positif, le bit de signe (S) est 0. L’exposant polarisé de
l’exposant réel 3, s’obtient en ajoutant 127 : 3 + 127 = 130. L’exposant polarisé (E) est
donc représenté par le nombre binaire (10000010)2. La mantisse est la partie fractionnaire (F)
du nombre binaire (00010000000000000000000)2 .
Le nombre à virgule flottante complet est donc :

S Exposant (E) Mantisse (M)


0 10000010 00010000000000000000000
En hexadécimal : (41040000)16
V. Arithmétique binaire
V.1. Addition binaire
Il faut beaucoup de bits pour représenter des nombres entiers de très grande valeur. Un autre
problème surgit lorsqu’il faut représenter des nombres possédant une partie entière et une partie
fractionnaire, comme 23,5618. Le système des nombres à virgule flottante, qui repose sur le
principe de notation scientifique, permet de représenter des nombres de très grande ou de très
petite valeur et/ou des nombres possédant une partie entière et une partie fractionnaire sans
augmenter le nombre de bits.
Un nombre à virgule flottante, également appelé nombre réel, comprend deux parties et un
signe. La mantisse est la partie qui représente la grandeur du nombre à virgule flottante.
L’exposant est la partie qui désigne la quantité de rangs avec laquelle la virgule décimale ou
binaire est décalée.
L’addition binaire s’effectue avec les mêmes règles qui s’appliquent à l’addition des
nombres décimaux. Cependant, il n’y a que quatre cas qui peuvent survenir lorsqu’on
additionne deux chiffres binaires et cela quel que soit le rang. On commence par additionner
les bits correspondant au plus petit poids, les 1 de retenue sont considérés comme des nouveaux
bits et additionnés avec ceux de la colonne de poids juste supérieur.

0+0=0
0+1=1
1+0=1
1+1=0 Avec 1 de retenue
Exemple :

1101
111
𝟏 101 10110
11100 + 101
+ 110
̅̅̅̅̅̅̅̅̅̅ + 01111
𝟏011 ̅̅̅̅̅̅̅̅̅̅̅̅̅ + 11110
𝟏01011 ̅̅̅̅̅̅̅̅̅̅̅̅̅
𝟏11001
V.2. Soustraction binaire
Le scénario est identique pour la soustraction de deux nombres binaires : la soustraction de
2 bits donne un bit de résultat et un bit de retenue de report sur la colonne suivante :

0−0=0
0−1=1 Avec 1 de retenue
1−0=1
1−1=0
Exemple :

110011
− 100101
̅̅̅̅̅̅̅̅̅̅̅̅̅
001110
V.3. Multiplication binaire
La multiplication binaire peut s’effectuer comme une suite d’additions successives des
produits partiels, comme une multiplication décimale.
On multiplie soit par 0 (et le résultat est nul) soit par 1 (et on recopie le multiplicateur).
Exemple :

101110010
× 1011
̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
101110010
+ 101110010 .
+ 000000000 . .
+ 101110010 . . .
̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
111101010111
V.4. Division binaire
La division binaire est l’opération la plus compliquée. On opère comme en décimal : on
soustrait le diviseur du dividende en commençant par les bits de poids fort. Elle nécessite une
série de soustractions et de décalages pour donner un quotient et un reste.
Exemple :

1111010
−1011
̅̅̅̅̅̅̅̅
1000 |
−0000
̅̅̅̅̅̅̅̅̅ 1011
10001 |
1011
−1011
̅̅̅̅̅̅̅̅̅̅̅̅̅
1100 |
−1011
̅̅̅̅̅̅̅̅̅̅
𝑟𝑒𝑠𝑡𝑒: 1
VI. Ecriture des nombres signés
Comme les calculateurs numériques traitent aussi bien les nombres négatifs que les nombres
positifs, une certaine convention est adoptée pour représenter le signe du nombre (+ ou -).
Généralement, un autre bit appelé bit de signe est ajouté au nombre. La convention la plus
courante consiste à attribuer au nombre positif le bit de signe 0 et au nombre négatif le bit de
signe 1. Le nombre est donc stocké en mémoire en deux parties dont l’une est réservée à la
valeur absolue du nombre en binaire et l’autre, placée à gauche, au bit de signe.
Exemple :
- Nombre décimal +25 exprimé en un nombre binaire signé sur 8 bits :

0 0 0 1 1 0 0 1
- Nombre décimal -25 exprimé en un nombre binaire signé sur 8 bits :

1 0 0 1 1 0 0 1
Bien que cette notation signe–grandeur soit directe, les calculateurs numériques n’y ont
généralement pas recours, en raison de la complexité des circuits qui matérialisent cette
notation d’où l’utilisation dans ces machines de la notation en complément à 2 pour représenter
les nombres signés.
VI.1. Notation en complément à 1
Le complément à 1 d’un nombre binaire s’obtient en changeant chaque 0 par 1 et chaque 1
par 0. Autrement dit, en complémentant chaque bit du nombre.
Exemple :

Nombre binaire 1 0 1 1 0 0 1 0
Complément à 1 0 1 0 0 1 1 0 1

VI.2. Notation en complément à 2


Le complément à 2 d’un nombre binaire s’obtient en prenant le complément à 1 de ce
nombre et en ajoutant 1 au bit de son rang de poids le plus faible.

Nombre binaire 1 0 1 1 0 0 1 0
Complément à 1 0 1 0 0 1 1 0 1
Addition (+) 1
Résultat 1 1 1 1 1 1 1 0

Grâce à la notation en complément à 2, les opérations de soustraction deviennent des


opérations d’addition, c’est le cas dans les calculateurs numériques puisqu’ avec les mêmes
circuits s’effectuent des soustractions et des additions.
VI.3. Addition en utilisant le complément à 2
On va considérer un circuit additionneur à deux entrées sur lesquelles sont disponibles deux
mots de quatre bits.
1er cas : deux nombres positifs
L’addition de deux nombres positifs est immédiate.
Exemple :
6 0.0110
+3 +0.0011
̅̅̅
9 ̅̅̅̅̅̅̅̅̅̅̅̅
0.1001
2ème cas : nombre positif et nombre négatif plus petit
On complémente à 2 le nombre négatif et on effectue la somme des deux nombres en
ajoutant la retenue de la somme des bits de poids le plus fort au bits de signe. La retenue de la
somme de ces derniers est ignorée.
Exemple :

9 0.1001
−3 + 1.1101 Complément à 2 de 0011
̅̅̅
6 ̅̅̅̅̅̅̅̅̅̅̅̅̅
10.0110
Retenue à rejetée
3ème cas : nombre positif et nombre négatif plus grand
On effectue l’opération de la même manière que dans le deuxième cas, seulement que le
résultat sera négatif. Alors pour avoir le résultat final, on procède à la complémentation à 2 du
résultat de l’addition codée.
Exemple :

3 0.0011
−7 + 1.1001 Complément à 2 de 0111
̅̅̅̅̅̅
−4 ̅̅̅̅̅̅̅̅̅̅̅̅
1.1100
Le résultat final de l’opération d’addition est le complément à 2 de 1.1100 qui est 1.0100
4ème cas : deux nombres négatifs
C’est le même cas que précédemment, le résultat de somme codée sera négatif d’où sa
complémentation à 2 pour avoir le résultat final.
Exemple :

−3 1.1101
−7 + 1.1001 Complément à 2 de 0011 et Complément à 2 de 0111
̅̅̅̅̅̅
−4 ̅̅̅̅̅̅̅̅̅̅̅̅
1.0110
Le résultat final de l’opération d’addition codée est le complément à 2 de 1.0110 qui est
1.1010
Remarque :
Dans chacun des exemples d’addition et de soustraction que l’on vient d’étudier, les
nombres que l’on a additionnés étaient constitués à la fois d’un bit de signe et de 4 bits de
grandeur. Les réponses aussi comportaient un bit de signe et 4 bits de grandeur. Toute retenue
faite sur le bit de sixième rang était rejetée. De même, il faut que le résultat de l’opération reste
inférieur strictement à (16)10 pour ne pas avoir un dépassement de capacité.
Exemple :

9 0.1001
+ 8 + 0.1000
̅̅̅̅̅̅̅
+17 ̅̅̅̅̅̅̅̅̅̅̅̅
1.0001
bit de signe

Le bit de signe de la réponse est celui d’un nombre négatif, ce qui est manifestement une
erreur. La réponse devrait être +17. Etant donné que la grandeur est 17, il faut plus de 4 bits
pour l’exprimer, et il y a donc un dépassement sur le rang du bit de signe.
VII.. Les principaux codes
Les circuits numériques fonctionnent avec des nombres binaires exprimés sous une forme
ou sous une autre durant leurs opérations internes, malgré que le monde extérieur soit un monde
décimal. Cela implique qu’il faut effectuer fréquemment des conversions entre les systèmes
binaire et décimal. On peut avoir plusieurs combinaisons de bits 0 et 1 pour une même valeur
décimale dont chaque combinaison correspond à un code.
VII.1. Code binaire pur

Quand on fait correspondre à un nombre décimal son équivalent binaire, on dit qu’on a fait
un codage binaire pur.

Nbr Nbr
Binaire pur Binaire pur
Décimal Décimal
0 0 0 0 0 5 0 1 0 1
1 0 0 0 1 6 0 1 1 0
2 0 0 1 0 7 0 1 1 1
3 0 0 1 1 8 1 0 0 0
4 0 1 0 0 9 1 0 0 1

VII.2. Code binaire décimal (DCB)


Pour réaliser ces codes, il faut 10 combinaisons différentes de bits 0 et 1 afin de pouvoir
réaliser les 10 symboles du système décimal.
- 1 seul bit permet 2 combinaisons : 0 ou 1
- 2 bits permettent 4 combinaisons : 00, 01, 10, 11
- 4 bits permettent 16 combinaisons : 0000, 0001, … ,1111
La réalisation de 10 combinaisons implique donc l’emploi d’au moins 4 bits et il va donc
falloir faire un choix de 10 combinaisons parmi les 16 possibles. Le choix parmi tous les codes
possibles est effectué en fonction d’un certain nombre de critères.
Conditions de poids : codes pondérés
Le code du nombre N est pondéré si on a :

𝑁 = 𝑥4 𝑝4 + 𝑥3 𝑝3 + 𝑥2 𝑝2 + 𝑥1 𝑝1
p1 = 1 pour représenter le 1 décimal dans le code.

p1 + p2 + p3 + p4 ≥ 9 pour représenter le 9 décimal dans le code.

Conditions de complément : codes auto-complémentaires


Un code est auto-complémentaire si le complément à 9 d’un chiffre décimal est obtenu en
échangeant 0 et 1 dans la représentation binaire. Pour qu’un code soit auto-complémentaire, il
faut que tout chiffre et son complément à 9 aient leur représentation symétrique par rapport au
milieu de la liste des représentations.
Code décimal binaire ou 8.4.2.1
Dans le code DCB, chaque chiffre décimal (0,1, . . . ,9) est codé en binaire sur 4 bits. C’est
un code pondéré avec les poids 1, 2, 4, 8, 10, 20, 40, 80, 100, 200, … Plus facile pour coder
des grands nombres, il est surtout utilisé pour l’affichage des nombres.
Exemple :

(129)10 = (100101001)2 = (0001 0010 1001)𝐷𝐶𝐵

Addition en BCD
Exemple 1 :
On additionne 47 + 35 = 82

0100 0111
+0011 +0101
̅̅̅̅̅̅̅̅̅
0111 ̅̅̅̅̅̅̅̅̅̅
1100
+ 1 + 0110
̅̅̅̅̅̅̅̅̅
1000 ̅̅̅̅̅̅̅̅̅̅
0010
On rencontre ici un mot codé qui ne correspond pas à une valeur connue ; il s’agit des six
représentations codées de 4 bits interdites ou non valides. Cette représentation est apparue parce
qu’on a additionné deux chiffres dont la somme dépasse 9. Pour résoudre ce problème, on
ajoute (6)10 = (0110)2 à ce mot codé inconnu afin de prendre en considération le fait qu’on
saute six représentations codées non valides. Si un report est produit, il sera ajouté à la somme
DCB des chiffres du rang suivant.
Exemple 2 :
On additionne 95 + 83 = 178

1001 0111
+1000 +0101
̅̅̅̅̅̅̅̅̅
1 0001 ̅̅̅̅̅̅̅̅̅̅
1000
+0110 +0000
̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
0001 0111 ̅̅̅̅̅̅̅̅̅̅
1000
Dans le cas où l’addition de deux chiffres donne un report (celui-ci est additionné avec le chiffre
de rang immédiatement à gauche), on ajoute une correction de (0110)2 au résultat de la somme.

VII.3. Code binaire réfléchi (ou code Gray)


Le code gray est un code non pondéré et ne convient pas aux calculs arithmétiques, en ce sens
qu’il n’y a pas de poids spécifiques qui correspondent aux positions des bits. Ce code est caractérisé
par le fait qu’en passant d’une combinaison à la suivante un seul bit change de valeur, ce qui
minimise les erreurs lors du codage. Comme par exemple les codeurs à positionnement rotatif, où
la prédisposition aux erreurs augmente selon la quantité de bits changés entre deux nombres
consécutifs d’une séquence.

Le tableau suivant énumère le code gray de 4 bits pour les nombres décimaux de 0 à 15.
Nbr Nbr
Code Gray Code Gray
Décimal Décimal
0 0 0 0 0 8 1 1 0 0
1 0 0 0 1 9 1 1 0 1
2 0 0 1 1 10 1 1 1 1
3 0 0 1 0 11 1 1 1 0
4 0 1 1 0 12 1 0 1 0
5 0 1 1 1 13 1 0 1 1
6 0 1 0 1 14 1 0 0 1
7 0 1 0 0 15 1 0 0 0

Conversion binaire → code gray


Pour effectuer la conversion d’un nombre binaire en code gray, on procède selon les règles
suivantes :
1- le bit de poids le plus fort du code gray, situé à l’extrême gauche, est le même que le MSB
correspondant au nombre binaire.
2- En vous déplaçant de gauche à droite, additionnez chaque paire de bits adjacente du code
binaire pour obtenir le bit suivant du code gray. Rejetez les retenues.

Binaire pur 1 0 1 1 0
Code Gray 1 1 1 0 1

Conversion code gray → binaire


Pour effectuer la conversion d’un nombre codé en gray en code binaire, on procède selon
les règles suivantes :
1- Le bit de poids le plus fort du code binaire, situé à l’extrême gauche, est identique au bit
correspondant au code gray.
2- Additionnez chaque nouveau bit de code binaire crée au bit de code gray adjacent suivant
(situé immédiatement à droite) en rejetant les retenues.

Code Gray 1 1 0 1 1
Binaire pur 1 0 0 1 0
VII.4. Code ASCII (American Standard Code for Information Interchange)
Il n'existe pas de méthode pour stocker directement les caractères. Chaque caractère possède
donc son équivalent en code numérique : C'est le code ASCII

Le code ASCII de base représentait les caractères sur 7 bits (c'est-à-dire 128 caractères possibles,
de 0 à 127) :

- Les codes 0 à 31 ne sont pas des caractères (ils ne sont pas imprimables). On les appelle
caractères de contrôle car ils permettent de faire des actions telles que : Retour sur la ligne
(CR), Bip Sonore (BEL), …

- Les codes 48 à 57 représentent les chiffres (0, 1, …, 9)

- Les codes 65 à 90 représentent les majuscules (A, B, …, Z)

- Les codes 97 à 122 représentent les minuscules (a, b, …, z)

La table des caractères ASCII défini par na norme ISO-646.

La table des caractères ASCII étendu sur 8 bits (c’est-à-dire 256 caractères possibles de 0 à 255).

Vous aimerez peut-être aussi