Documente Academic
Documente Profesional
Documente Cultură
Chapitre 1
Systmes de numrotation, codes binaires et arithmtique
Introduction :
Tous les circuits numriques (inclus microprocesseurs et microcontrleurs) traitent des donnes.
Cependant, toutes les donnes traites par ces circuits doivent tre sous une forme binaire. Par exemple,
les donnes bases sur des caractres sont stockes sous forme de codes binaires. Ainsi, le code ASCII
pour la lettre A est en binaire 1000001 . Les donnes numriques peuvent galement tre stockes
sous forme de caractres, mais il est plus efficace de stocker les donnes numriques sous forme de codes
binaires.
Comme les humains sont gnralement habitus au systme de numration dcimal, il est important pour
les ordinateurs de permettre lentre et laffichage (sortie) de donnes dcimales. En interne, les donnes
seront traites sous forme binaire; ainsi, l'ordinateur doit convertir dcimal binaire puis binaire
dcimal avant la sortie. Comme le signe ngatif ne peut tre attach un nombre sous forme binaire, la
conversion des nombres signs ncessite un traitement supplmentaire.
En outre, les donnes sont stockes et traites sur des systmes informatiques en groupes de 8 bits appels
octets (ou byte en anglais). Chaque octet est constitu d'une partie suprieure et une partie infrieure,
appele quartet ou nibble , de quatre bits chacune. Un mot (word) est un groupe d'un certain
nombre de bits binaires. Un mot peut tre de 4 bits, 5 bits, 8 bits, 16 bits ou 32 bits.
1.1.
Un systme de numration est un code pondr qui se dfinit par deux lments:
a. La base b du systme,
b. Les symboles du systme.
Les systmes de numration les plus utiliss sont les suivants:
Systme
Dcimal
Binaire
Octal
Hexadcimal
base
10
2
8
16
Symboles
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
0, 1
0, 1, 2, 3, 4, 5, 6, 7
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Table : 1.1
Nombre de symboles
10
2
8
16
En base , on utilise chiffres. Notons la suite des chiffres utiliss pour crire un nombre
= 1 1 0
Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 1/27
ver 1.0
1 1 0 =
eq. [1]
=0
1 = (19017)10 en dcimal,
avec: 4 = 1, 3 = 9, 2 = 0, 1 = 1, 0 = 7
On remarque que les sont tous infrieurs la base = 10.
2 = (1011101)2 en binaire,
avec: 6 = 1, 5 = 0, 4 = 1, 3 = 1, 2 = 1, 1 = 0, 0 = 1
Passage en base 10 en utilisant leq. [1] :
2 = (1011101)2 = 1 26 + 0 25 + 1 24 + 1 23 + 1 22 + 0 21 + 1 20 = (93)10
3 = (130)8 en Octal,
avec: 2 = 1, 1 = 3, 0 = 0
Passage en base 10 en utilisant leq. [1] :
3 = (130)8 = 1 82 + 3 81 + 0 80 = (88)10
Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 2/27
ver 1.0
5 = (18095)8
La notation 5 = (18095)8 nest pas correcte, car tous les chiffres doivent tre infrieurs 8 ce
qui nest pas le cas pour le 2me chiffre et aussi pour le 4me (a1= 9 > 8) et (a3= 8).
Remarque :
On note que lexpansion en puissance peut tre utilise pour convertir dans nimporte quelle
base :
Ceci nest pas commode de faire la main, cependant il est facilement ralis sur un ordinateur.
1.2.1. Reprsentation des nombres fractionnaires
Les nombres fractionnaires sont ceux qui comportent des chiffres aprs la virgule.
Dans le systme dcimal, on crit par exemple :
12,346 = 1 101 + 2 100 + 3 101 + 4 102 + 6 103
En gnral, en base b, on crit :
1 1 0 , 1 2
= + 1 1 + + 0 0 + 1 1 + 2 2 +
+ = +
=0
eq. [2]
=1
1.3.
Pour exprimer en binaire, un nombre exprim dans une base , on utilise la mthode de divisions
successives .
ver 1.0
= 1 + 1 2 + + 2 1 + 1 = 1 avec reste 0
Ce processus ce rpte jusqu trouver (+1 sera alors 0). Noter que le reste obtenu aprs chaque
division est un des bits recherch. Le bit le moins signifiant (ou LSB : Least Significant Bit) 0 est
obtenu en premier lieu.
En rsum lalgorithme de conversion par division successives est le suivant:
Soient :
= 1 0
ver 1.0
X = (115)10 = (1110011)2
Figure : 1.1
Soit le nombre X = 5310 , convertir ce nombre en binaire:
X = (175)8
Figure : 1.2
ver 1.0
Y = (24)
Figure : 1.3
1.3.2. Conversion par multiplication successives des fractions dcimales
La conversion dune fraction dcimale en base b peut se faire par multiplication successive par b.
En effet, lquivalent en base b dune fraction dcimale peut tre reprsent par :
= (, 1 2 ) = 1 1 + 2 2 + +
Si on multiplie par , on obtient :
= 1 + 2 1 + + +1 = 1 + 1
O 1 reprsente la partie fractionnaire du rsultat et 1 sa partie entire.
On multiplie 1 par , on obtient :
1 = 2 + 3 1 + + +2 = 2 + 2
Ensuite :
2 = 3 + 4 1 + + +3 = 3 + 3
Ce processus se continue jusqu ce quon obtient une partie fractionnaire nulle, ou jusqu ce que le
nombre de digit fractionnaire soit suffisant. Noter que la partie entire obtenue aprs chaque
multiplication est un des bits recherch. Le bit le plus signifiant (ou MSB : Most Significant Bit) de la
partie fractionnaire 1 est obtenu en premier lieu.
Exemples :
o Convertir (0.625)10 la base 2 :
ver 1.0
Comme on la dj mentionn, ce processus ne se termine pas toujours : le rsultat serait alors une
fraction qui se rpte
o Convertir 0.710 la base 2 :
Par suite:
1.4.
Pour convertir un nombre dune base 1 une base 2 , il est plus facile de passer par une base
intermdiaire qui est la base 10.
Exemple :
o Soit le nombre = (175)8 = (? )2
ver 1.0
Parsuite:
231.34 = 45.7510 = 63.5151 7
On note cependant lorsquune base est une puissance dune autre base, le passage de lune lautre
devient trs facile et ne ncessite pas une base intermdiaire. Ainsi, le passage de la base 8 = 23 ou
16 = 24 la base 2 peut seffectuer sans passer par la base 10.
1.4.1. Passage de loctal au binaire (et inversement) :
La base 8 est une puissance de la base 2. Pour convertir un nombre octal en binaire, on possde comme
suit:
On a 8 = 23 cela veut dire que pour reprsenter un seul chiffre octal en binaire, il faut utiliser 3 bits.
Ainsi, la reprsentation des chiffres de la base 8 en binaire est la suivante:
Chiffre octal
0
1
2
3
4
5
6
7
1
0
7
1
5
0
= (175)8 = (1111101)2
Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 8/27
ver 1.0
Et inversement
Soit le nombre binaire = (1111101)2 = (? )8
Pour trouver lquivalent octal de ce nombre binaire, il suffit de regrouper les bits du nombre binaire
en groupes de 3 bits en partant de la droite. Si le dernier groupe ne contient pas trois bits, ajoutez des
zros. Ainsi, trouver lquivalent octal de chaque groupe de 3 bits
Binaire
Octal
0
1
1
7
0
5
= (1111101)2 = (175)8
1.4.2. Passage de lhexadcimal au binaire (et inversement) :
La base 16 est une puissance de la base 2. Pour convertir un nombre hexadcimal en binaire, on
possde comme suit:
On a 16 = 24 cela veut dire que pour reprsenter un seul chiffre hexadcimal en binaire, il faut
utiliser 4 bits. Ainsi, la reprsentation des chiffres de la base 16 en binaire est la suivante :
Chiffre hexadcimal
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
A
1
2
1
4
1
= (A24)h = (101000100100)2
Et inversement
Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 9/27
ver 1.0
Pour trouver lquivalent hexadcimal de ce nombre binaire, il suffit de regrouper les bits du nombre
binaire en groupes de 4 bits en partant de la droite. Si le dernier groupe ne contient pas trois bits, ajoutez
des zros. Ainsi, trouver lquivalent hexadcimal de chaque groupe de 4 bits
Binaire
Hexa
= (101000100100)2 = (A24)h
Exercices supplmentaires sur la base hexadcimale:
1.5.
Arithmtique binaire :
Les oprations arithmtiques dans les systmes numriques sont gnralement effectus en binaire parce
que la conception des circuits logiques pour effectuer des oprations arithmtiques binaires est beaucoup
plus facile que pour dcimal.
Larithmtique binaire est effectue de la mme manire que dcimale
1.5.1. Addition binaire :
La table daddition des digits binaires est la suivante:
0+0=0
0+1=1
1+0=1
1+1=0
Une retenue de 1 pour la colonne suivante est quivalente l'addition de 1 cette colonne.
Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 10/27
ver 1.0
Exemple :
ver 1.0
1 0 0 1 0 0 0 1 1011
1 0 1 1
Diviseur
1101
1 1 1 0
Quotient
1 0 1 1
0 0 1 1 0 1
1 0 1 1
Reste
1.6.
1 0
Jusqu' prsent, tous les nombres prsents ont t des nombres positifs. Ceci n'est pas le cas dans la vie
relle. Le systme dcimal utilise une paire de symboles pour indiquer la polarit. Le signe + indique
un nombre positif et le signe - indique que le nombre est ngatif. Le nombre zro est toujours considr
comme un nombre positif. Pour cette raison, les nombres ngatifs peuvent tre dfinis comme un nombre
quelconque infrieur zro, et les nombres positifs sont les nombres qui ne sont pas ngatifs.
Ce symbole supplmentaire ( + ou - ) occupe un autre digit (position) dans le nombre. Si les
nombres sont tous positifs, le symbole + est rarement utilis. Si aucun signe ne figure en dcimale,
le nombre est suppos tre un nombre positif.
Le systme de numration binaire n'a pas le luxe d'tre en mesure d'utiliser d'autres symboles pour
indiquer le signe (autre que 0 et 1). En effet, les circuits numriques ne peuvent reprsenter que des 1 et
des 0, par consquent, les nombres signs doivent en quelque sorte utiliser ces symboles pour reprsenter
le signe d'un nombre.
Il existe plusieurs mthodes utilises pour intgrer des nombres signs (relatifs) dans le systme de
numrotation binaire. Ces mthodes utilisent un seul bit pour indiquer le signe. Le bit de signe est le bit
le plus gauche ou le plus significatif (MSB : Most Significant Bit), semblable au symbole signe
utilis en dcimal. En binaire, le symbole "1" indique un nombre ngatif et le symbole "0" indique
Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 12/27
ver 1.0
un nombre positif . Comme il ne peut pas y avoir des bits vides dans un nombre binaire, tous les
nombres signs doivent avoir un 1 ou un 0 dans la position du bit le plus significatif pour indiquer ngatif
ou positif.
Comme on la dj mentionn, plusieurs reprsentations binaires des entiers relatifs sont couramment
utilises, en particulier dans les convertisseurs analogiques numriques. On peut citer:
- Complment 2,
- Complment 1,
- Signe, valeur absolue,
Pour illustrer ces diverses reprsentations on donne un exemple sur 4 bits (table 1.4).
Entiers relatifs
Signe plus
valeur absolue
+7
+6
+5
+4
+3
+2
+1
0
0
-1
-2
-3
-4
-5
-6
-7
-8
0111
0110
0101
0100
0011
0010
0001
0000
1000
1001
1010
1011
1100
1101
1110
1111
---
Complment 1
0111
0110
0101
0100
0011
0010
0001
0000
1111
1110
1101
1100
1011
1010
1001
1000
--Table : 1.4
Complment 2
0111
0110
0101
0100
0011
0010
0001
--0000
1111
1110
1101
1100
1011
1010
1001
1000
Remarque importante:
Pour la reprsentation des nombres signs dans nimporte quelle forme doit toujours spcifier sur
combien de bits est effectue cette reprsentation. Dans le tableau prcdent la reprsentation tait sur 4
bits (1 quartet).
1.6.1. Signe - valeur absolue :
Quand un nombre binaire sign est reprsent en signe-valeur absolue , le MSB est le bit de signe, et
les bits restants sont les bits damplitude en valeur absolue. Les bits de valeur absolue sont en binaire
pur (non complment) pour les nombres positifs et ngatifs.
Par exemple, le nombre dcimal +25 est exprim comme nombre sign sur 8-bits signe-valeur
absolue par
Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 13/27
ver 1.0
2510 = (11100110)2
1.6.3. Complment 2 :
La reprsentation des nombres signs utilise dans la plupart des microprocesseurs et circuits numriques
est la reprsentation binaire en complment deux . Cette reprsentation est utilise pour les
calculs arithmtiques signs et le stockage des donnes signes.
L'avantage de lutilisation du complment 2 est observ dans les oprations arithmtiques effectues
par un microprocesseur/microcontrleur. Tous les microprocesseurs ont besoin deffectuer les quatre
oprations arithmtiques de base : addition, soustraction, multiplication et division. Ces oprations
arithmtiques sont effectues dans un microprocesseur/microcontrleur par une unit arithmtique et
logique (ALU), qui est essentiellement un additionneur binaire intelligent.
Par exemple, la multiplication est tout simplement une addition rpte. Le problme de multiplication
3 4 peut tre ralis en ajoutant 4 + 4 + 4 pour aboutir la bonne rponse, 12. La soustraction en
complment 2 peut tre effectue par un additionneur si le signe du second nombre est chang avant
l'opration d'addition. Par exemple, 5 2 = 5 + (2) = 3.
Ainsi, en complment 2, la soustraction est tout simplement un cas particulier de l'addition. Comme la
division est une soustraction rpte, elle peut galement tre effectue dans un additionneur binaire.
1.6.3.1.
Ngation en complment 2
Tous les nombres ngatifs dans la reprsentation en complment 2 peuvent tre drivs de leurs
quivalents positifs. La ngation est le processus de calcul de l'quivalent ngatif d'un nombre. La
ngation en complment 2 est effectue de la manire suivante :
a. On crit lquivalent positif du nombre avec un nombre appropri et bien dfini de bits (avec un zro
dans le MSB reprsentant le bit de signe),
b. On inverse tous les bits (cest le complment 1 )
c. On additionne 1.
ver 1.0
Lopration dinversion de tous les bits est dsigne en tant que complment 1 . La figure suivante
illustre l'application de cette mthode pour obtenir la ngation en complment 2 du nombre positif 5.
(On travaille ici sur 8 bits)
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
+5
Complment 1
Ajouter 1
Complment deux (-5)
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
+71
Complment 1
Ajouter 1
Complment deux (-71)
1
0
1
1
-71
Complment 1
Ajouter 1
Complment deux (+71)
L'opration de ngation en complment 2 ncessite deux tapes. Un raccourci existe et produit le mme
rsultat, mais seulement ncessite une seule tape. Ce procd consiste commencer par le nombre
binaire original (positif ou ngatif). On copie tous les chiffres partir de la droite jusqu' et y compris le
premier digit "1". Puis, on inverser les bits restants. La figure suivante illustre la faon dont cela
fonctionne sur deux nombres de 8 bits.
(a)
(b)
Figure 1.4: Raccourci pour la ngation en complment 2
ver 1.0
1 2 1 0
La relation entre et les valeurs des bits est la suivante :
Pour positif, la reprsentation en complment 2 de correspond la reprsentation
binaire pure sur N bits, c'est--dire une reprsentation pondre en base 2 sans considrer le
signe :
N 1
x 0 x bi 2i avec bN 1 0
i 0
Dans tous les cas on peut crire la relation suivante qui permet dobtenir la valeur dcimale des nombres
signe en complment 2 :
x 2
N 2
b N 1 b i 2i
N 1
i 0
(2)
Le bit de poids le plus fort vaut 0 pour les entiers positifs et 1 pour les entiers ngatifs.
Exemples rcapitulatifs :
ver 1.0
max x 2 N 1 1
min x 2 N 1
Par exemples
1.7.
ver 1.0
Les diffrents cas qui peuvent se produire sont illustrs ci-dessous pour = 4. (Dynamique [-8, +7[ )
a. Addition de deux nombres positifs, [8, +7[
+3
+4
+7
0
0
0
0
1
1
1
0
1
1
0
1
rsultat correct
0
0
1
1
1
0
0
1
1
1
0
1
rsultat incorrect
Rsultat incorrect cause de loverflow: +11 demande 5 bits pour tre reprsente, le bit de signe inclus.
c. Addition de deux nombres, un positif, un ngatif avec | | > | |
+5
-6
-1
0
1
1
1
0
1
0
1
1
1
0
1
rsultat correct
1
0
(1) 0
0
1
0
1
1
0
1
0
1
rsultat correct
Le rsultat est correct quand on ignore le retenu (carry) du bit de signe. (Ceci nest pas un overflow).
e. Addition de deux nombres ngatifs avec [8, +7[
-3
-4
-7
1
1
(1) 1
1
1
0
0
0
0
1
0
1
rsultat correct
Le rsultat est correct quand on ignore le retenu (carry) du bit de signe. (Ceci nest pas un overflow).
f. Addition de deux nombres ngatifs avec [8, +7[
-5
-6
- 11
1
1
(1) 0
0
0
1
1
1
0
1
0
1
rsultat incorrect
Rsultat incorrect cause de loverflow: -11 demande 5 bits pour tre reprsente, le bit de signe inclus.
Notez que l'tat de dbordement (cas b et f) est facile dtecter, car dans le cas b l'addition de deux
nombres positifs donne un rsultat ngatif (sur 4 bits), et dans le cas f, l'addition de deux nombres ngatifs
donne une rponse positive (sur 4 bits).
1.7.2. Soustraction en complment 2
La soustraction est un cas particulier de laddition.
Par exemple soustraire (+6) de (+9) est quivalent ajouter (-6) (+9).
La soustraction est essentiellement le changement du signe du soustracteur (diminuteur) et son addition
au nombre soustraire (diminuende).
Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 18/27
ver 1.0
Le changement de signe dun nombre binaire positif ou ngatif est obtenu en prenant son complment
2.
Pour soustraire deux nombres signs, prendre le complment 2 du soustracteur et additionner. Ignorer
tout retenu du bit de signe.
Exemples pour = 8 :
Comme pour laddition on peut avoir des dbordements si le rsultat obtenu dpasse la dynamique de la
reprsentation. Pour N=8 bits, la dynamique est de -128 +127.
1.8.
Le binaire cod dcimal (BCD) est un moyen de codage dun chiffre dcimal unique (0 9) sur un code
binaire de 4-bits. Il est rarement utilis sur les ordinateurs et circuits numriques parce que les nombres
BCD sont trs inefficaces. Seulement 10 des 16 codes possibles sont utiliss dans chaque quartet de 4bit ce qui gaspille les capacits de stockage et de traitement. Les codes BCD sont prsents dans la table
suivante :
ver 1.0
Chiffre dcimal
0
1
2
3
4
5
6
7
8
9
Code BCD
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
ver 1.0
(a)
(b)
(c)
Figure 1.5
La figure 1.5.b illustre pourquoi ceci se produit. Il y a six nombre inutiliss dans la reprsentation BCD
sur 4 bits. Ces nombres doivent tre sauts chaque fois quil est ncessaire lors dune addition. Cette
correction sappelle correction BCD ou decimal adjust .
Pour raliser la correction BCD aprs une addition BCD effectue dans un additionneur binaire, on
doit se poser les deux questions suivantes :
o Question 1: Le rsultat est suprieur 9?
o Question 2: ce rsultat a-t-il provoqu un retenu (carry)?
Si la rponse une de ces deux questions est oui, alors un ajustement dcimal doit tre fait sur le rsultat
binaire obtenu. Lajustement se fait en ajoutant 6 au rsultat binaire d'origine, comme le montre la figure
suivante :
(a)
(b)
Figure 1.6 : correction BCD
Dans la sous-figure 1.6(a), le rsultat de l'additionneur binaire est (6) . Comme () est suprieur 9,
la rgle 1 s'applique, et 6 doit tre ajouts (6) pour obtenir le bon rsultat de 71 en BCD. Dans la
sous-figure 1.6(b), l'additionneur binaire donne (80) avec un retenu (carry) du premier quartet (4 bits)
au quartet de gauche. La rgle 2 s'applique, donc 6 doit tre ajout (80) pour obtenir le bon rsultat
86 en BCD. La figure 1.7 prsente un autre exemple de laddition des nombres BCD : 01100111 et
01010011.
Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 21/27
ver 1.0
2. Le code Gray
Le code Gray nest pas pondr et il nest pas un code arithmtique. La proprit importante du code
gray est quil prsente un seul changement de bit dun code au suivant dans la squence. Cette proprit
est trs importante dans plusieurs applications, comme par exemple dans le cas des codeurs rotatifs.
La table suivante liste le code Gray sur 4 bits avec ses quivalents binaires et dcimal. Le code Gray
peut avoir nimporte quel nombre de bits. Remarquer quun seul bit change entre les codes Gray
successifs.
2.1.
Les rgles suivantes expliquent comment convertir dun nombre binaire un code Gray :
1. Le MSB en code Gray est le mme que le MSB du nombre binaire correspondant.
2. En allant de gauche droite, ajouter chaque paire adjacente du nombre binaire pour obtenir le bit
suivant du code Gray. Ignorer les retenus.
Par exemple la conversion du nombre binaire 10110 en code Gray se fait de la manire suivante :
ver 1.0
2.2.
Les rgles suivantes expliquent comment convertir dun code Gray un nombre binaire:
1. Le MSB du code binaire est le mme que le MSB du code Gray correspondant.
2. En allant de gauche droite, ajouter chaque bit binaire gnr au bit suivant du code Gray. Ignorer
les retenus.
Par exemple la conversion du code Gray11011 en nombre binaire se fait de la manire suivante :
2.3.
Un codeur d'arbre (codeur rotatif) est une application typique du code Gray. Trois metteur/dtecteurs
IR (infrarouge) sont utiliss pour coder la position de l'arbre.
Squence binaire
ver 1.0
Le codeur utilis gauche est binaire et peut avoir trois bits qui changent ensemble, crant ainsi un risque
d'erreur de lecture ventuel.
Le codeur droite utilise le code Gray et ainsi permet le changement de 1 bit uniquement entre les codes
successifs, liminant ainsi les erreurs potentielles.
ver 1.0
ver 1.0
ver 1.0
4. Notation numrique:
Les ordinateurs et circuits numriques nutilisent pas le systme dcimal comme leur systme principale,
mais plutt utiliser le systme binaire. Par consquent, il est logique que les multiplicateurs soient des
puissances de 2.
Le nombre de combinaisons possibles sur huit bits est : 28 = 256.
Le nombre de combinaisons possibles sur 16-bits est de 216 = 65536.
La notation frquemment utilise est de grouper des puissances entires de 2 qui sont des multiples de
10 (soit, 210, 220, etc.).
Les 65536 combinaisons sur 16 bits peuvent alors tre crit comme 216 = 26 210 = 64 210.
Il est trs commun en pratique de remplacer les puissances de 2 qui sont des multiples de 10 avec une
seule lettre, comme le montre la table suivante :
Dcimal
Notation
1,024
()
1,048,576
()
1,073,741,824
()
1,099,511,627,776
()