Sunteți pe pagina 1din 27

ver 1.

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. Reprsentations binaires des nombres et arithmtique :


Dans cette section on dfinit comment les nombres sont reprsents dans les systmes digitaux avec
diffrents formats et comment les oprations arithmtiques sont ralises dans les
microprocesseurs/microcontrleurs.

1.1.

Les systmes de numration

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

0 est le chiffre des units.


-

En dcimal = 10, {0,1, 2, 3, 4, 5, 6, 7, 8, 9} ;

En binaire, = 2, {0, 1}: 2 chiffres binaires, ou bits ;

En hexadcimal, = 16, {0,1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}


(On utilise les 6 premires lettres de lalphabet comme des chiffres : A reprsente 10, B
reprsente 11, , F reprsente 15).

1.2. Reprsentation positionnelle des nombres entiers (et passage de la base la


base )
En base 10, on crit par exemple 1996 pour reprsenter le nombre
1996 = 1 103 + 9 102 + 9 101 + 6 100
Dans le cas gnral, en base , le nombre reprsent par une suite de chiffres
1 1 0
est donn par lexpansion en puissance suivante:

1 1 0 =

eq. [1]

=0

0 est le chiffre de poids faible, et le chiffre de poids fort.


De manire similaire en base 2 :
(101)2 = 1 22 + 0 21 + 1 20 = 4 + 0 + 1 = 5
La notation ( 123 ) (ou aussi 123 ) indique que le nombre 123 est crit en base .
Autres exemples :

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

4 = (920)16 = (920) = 0920 en Hexadcimal,


avec: 3 = , 2 = 9, 1 = 2, 0 = 0
Passage en base 10 en utilisant leq. 1 :
4 = (920) = 163 + 9 162 + 2 161 + 0 160 = (43296)10

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 :

Base 10 vers base 3 :


14710 = 1 (101)2 + (11) (101)1 + (21) (1010)0

Base 10 vers base 2 :


14710 = 1 (1010)2 + (100) (1010)1 + (111) (1010)0

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

Par exemple en base 8:


147.3 8 = 1 82 + 4 81 + 7 80 + 3 81 = 64 + 32 + 7 + 0.375 = 103.37510

1.3.

Passage de la base 10 la base 2, 8, 16

Pour exprimer en binaire, un nombre exprim dans une base , on utilise la mthode de divisions
successives .

Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 3/27

ver 1.0

1.3.1. Conversion par division successives des nombres entiers dcimaux


Soit un nombre entier exprim dans la base 10. Pour lexprimer dans une autre base , il suffit
deffectuer des divisions successives par jusqu lobtention dun rsultat nul.
En effet, lquivalent en base b dun entier dcimal X peut tre reprsent par :
= ( 1 1 0 ) = + 1 1 + + 2 2 + 1 1 + 0
Si on divise par , le reste est 0 :

= 1 + 1 2 + + 2 1 + 1 = 1 avec reste 0

puis on divise 0 par


1
= 2 + 1 3 + + 3 1 + 2 = 2 avec reste 1

puis on divise 1 par


2
= 3 + 1 4 + + 4 1 + 3 = 3 avec reste 2

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 :

: un nombre entier exprim dans la base = 10.


: le rsultat de la division : .
: le reste de la division : +1.

1) Effectuer la 1re division ( = 1)

= 1 0

Si 1 = 0 alors aller 3) sinon aller 2)


2) Effectuer la division :
1
= 1

Si = 0 (par exemple aprs + 1 divisions) alors aller 3) sinon rpter 2)


3) Arrter la division. Le rsultat est ()10 = ( 1 1 0 )
Exemples :
o Passage de la base 10 la base 2 :
Soit le nombre X = (115)10, convertir ce nombre en binaire:
Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 4/27

ver 1.0

X = (115)10 = (1110011)2

Figure : 1.1
Soit le nombre X = 5310 , convertir ce nombre en binaire:

o Passage de la base 10 la base 8 :

Le passage de la base 10 la base 8 seffectue de la mme manire.


Soit le nombre X = (125)10, convertir ce nombre en Octal :
Pour cela, on va effectuer les divisions successives de X sur 8. Les restes de ces divisions vont constituer
les chiffres de X exprim en Octal.

X = (175)8

Figure : 1.2

Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 5/27

ver 1.0

o -Passage de la base 10 la base 16 :

Soit le nombre X = (2596)10, convertir ce nombre en Hexadcimal :

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 :

Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 6/27

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 :

Le processus commence se rpter parce que 0.4 a t obtenu avant

Par suite:

0.710 = 0.1 0110 . . .2

1.4.

Passage entre 2 bases (diffrentes de 10) :

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

a. Passage de loctal la base 10


Y = (175)8 = 1 82 + 7 81 + 5 80 = (125)10
b. Passage du dcimal au binaire
= (125)10 = (1111101)2
Conclusion
= (175)8 = (1111101)2
o Convertir 231.34 la base 7 :

a. Passage de la base 4 la base 10


Y = 231.34 = 2 42 + 3 41 + 1 40 + 3 41 = 45.7510

Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 7/27

ver 1.0

b. Passage du dcimal la base 7

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

Chiffre binaire quivalent (sur 3 bits)


000
001
010
011
100
101
110
111
Table : 1.2

Exemple : Soit le nombre = (175)8 = (? )2


Pour trouver lquivalent binaire de ce nombre octal, il suffit de trouver lquivalent binaire de chaque
chiffre octal.
Octal
Binaire

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

Chiffre binaire quivalent (sur 4 bits)


0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Table : 1.3

Exemple : Soit le nombre = (A24)h = (? )2


Pour trouver lquivalent binaire de ce nombre hexadcimal, il suffit de trouver lquivalent binaire de
chaque chiffre hexadcimal.
Hexa
Binaire

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

Soit le nombre binaire = (101000100100)2 = (? )h

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

et une retenue (carry) de 1 pour la colonne suivante

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 :

1.5.2. Soustraction binaire :


La table de soustraction des digits binaires est la suivante:
00=0
01=1
10=1
11=0

et un emprunt (borrow) de 1 de la colonne suivante

Un emprunt de 1 de la colonne suivante est quivalent soustraire 1 cette colonne.


Exemples, effectuer en binaire 2910 1910 , 1610 310 , 5710 1110

1.5.3. Multiplication binaire :


La table de multiplication des digits binaires est la suivante:
00= 0
01= 0
10= 0
11= 1
Exemple : effectuer en binaire 1310 1110 ,

Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 11/27

ver 1.0

1.5.4. Division binaire :


La division binaire est similaire la division dcimale, sauf qu'elle est beaucoup plus facile parce que
les deux chiffres de quotient possibles sont 0 et 1.
Lexemple suivant illustre la division de 14510 par 1110 en binaire :
14510 1110 = 1310 2
Dividende

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

Reprsentations binaires des entiers relatifs (nombres signs) :

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

Le nombre dcimal -25 est exprim par


10011001
Noter que la seule diffrence entre +25 et -25 est le bit de signe.
1.6.2. Complment 1 :
Les nombres positifs en complment 1 sont reprsents de la mme faon que signe-valeur absolue .
Les nombres ngatifs sont reprsent par le complment 1 du nombre positif correspondant :
Complment 1 on inverse chaque digit (0 1 et 10)
Par exemple, en utilisant 8 bits, le nombre dcimal -25 est exprim comme le complment 1 de +25
(00011001) :
+2510 = (00011001)2

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.

Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 14/27

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)

Ngation en complment 2 sur 8 bits


Un autre grand avantage de la reprsentation en complment 2 est quelle est rversible. On peut
appliquer le procd pour lobtention du complment 2 n'importe quel nombre positif pour trouver
l'quivalent ngatif et un n'importe quel nombre ngatif (reprsent en complment 2) pour trouver
lquivalent positif. La figure suivante illustre cette rversibilit.
0
1

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)

Rversibilit de la reprsentation en complment 2 sur 8 bits


1.6.3.2.

Raccourci pour la ngation en complment 2 :

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

Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 15/27

ver 1.0

1.6.4. Description formelle de la reprsentation en complment 2 :


Soit un entier relatif avec || . Sa reprsentation binaire en complment 2 sur N
bits est constitue de la suite de bits bi:

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

Pour x ngatif, la reprsentation y en complment 2 de x est la reprsentation binaire


pure sur N bits du complment 2N de |x| :
x 0 y 2N x

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 :

Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 16/27

ver 1.0

1.6.5. Valeurs extrmes (dynamique)


Les valeurs extrmes reprsentables en complment 2 sur N bits sont:

max x 2 N 1 1
min x 2 N 1
Par exemples

1.7.

avec N=4 bits on peut reprsenter des nombres en complment 2 allant de 23 = 8


23 1 = +7
avec N=8 bits on peut reprsenter de -128 +127.
Avec N=16 bits on peut reprsenter de -32768 +32767.

Oprations arithmtiques avec les nombres signs en complment 2:

1.7.1. Addition en complment 2


L'addition de nombres binaires signs N-bits est simple l'aide du complment 2.
L'addition est effectue avec un additionneur binaire comme si tous les chiffres ont t positifs, et tout
report (carry) de la position de signe est ignor. Ceci toujours donne un rsultat correct sauf si un
dbordement (overflow) se produit.
Lorsque la longueur des nombres est N bits, nous disons qu'un dbordement a eu lieu, si la reprsentation
correcte de la somme (avec signe) ncessite plus que N bits.
Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 17/27

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

b. Addition de deux nombres positifs, [8, +7[


+5
+6
+11

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

d. Addition de deux nombres, un positif, un ngatif avec | | < | |


-5
+6
+1

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.

Binaire cod dcimal : code BCD

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 :

Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 19/27

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

1.8.1. Conversion dcimaleBCD


Pour exprimer un nombre dcimal en BCD, il suffit de remplacer chaque digit par le code binaire 4-bit
correspondant, par exemple :

1.8.2. Conversion BCD dcimale


Il est galement facile de dterminer le nombre dcimal dun nombre BCD. On commence droite et on
partitionne le nombre binaire en quartets (groupe de quatre bits). Ensuite on crit le digit dcimal
correspondent chaque quartet :

1.8.3. Arithmtique BCD


Un autre inconvnient du code BCD est quil ncessite galement des ajustements aprs les oprations
arithmtiques utilisant ladditionneur binaire. L'additionneur binaire va produire les valeurs suprieures
9 sur un quartet de 4 bits qui sont des rsultats BCD invalides. Prenons l'exemple de la figure suivante
quand on additionne 3 et 9, le rsultat devrait tre de 12. Cependant sur 8-bit ladditionneur binaire donne
(0) et pas 12.
Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 20/27

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

Figure 1.7 : Autre exemple de correction BCD

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.

Conversion binaire Gray

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 :

Le code Gray est 11101

Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 22/27

ver 1.0

2.2.

Conversion Gray binaire

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 :

Le nombre binaire est 10010.


Exemple supplmentaires sur 8 bits :

2.3.

Exemple dapplication du code Gray

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

Squence en code Gray

Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 23/27

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.

3. Codes Alphanumriques : le code ASCII


Les Codes Alphanumriques n'ont aucune proprit arithmtique directe. Ils servent reprsenter des
"caractres" (chiffres, lettres....). Un standard est le code ASCII (American Standard Code For
Information Interchange). Il permet de reprsenter en 7 (ou 8) bits toutes les touches d'une machine
crire (e.g. clavier), y compris des touches "commandes " tels que les CTRL... et ALT...., "Pomme" sur
les Macintosh.
Les 32 premiers codes dans la version de base sur 7 bits sont utiliss comme caractres de contrle pour
reprsenter, par exemple, une fin de ligne ou une tabulation, un arrt transmission, la touche Escape, etc.

Codes ASCII de base sur 7 bits


Le code nest pas tout fait quelconque:
1) chiffres de 0 9 : Le quartet bas est gal la valeur binaire du chiffre. Le quartet haut est 0011 (3
hexa). Exemple le caractre "7" donne le code ASCII 37 hexa (0011 0111 binaire). On peut ainsi
facilement passer du code ASCII du chiffre sa valeur numrique et vice versa.
2) Lettres : Les codes sont placs par ordre croissant, dans le mme ordre que l'alphabet, pour faciliter
les classements (il suffit de comparer les codes ASCII). Exemple: A, B, C, D. donnent 40, 41, 42,
43... (hexa).
3) Utilisation : Ne pas confondre le code binaire du 9 (09 hexa) et celui du caractre "9" (39 hexa) !!!
On se sert des codes ASCII pour
o Lcriture d'un langage (assembleur ou volu), ou d'un texte quelconque.
o La transmission vers une imprimante, vers un cran de visualisation (ce sont de anciennes
applications)
o les stockages sur disques.
4) Traitement de texte et diteur de Texte
o Editeur de texte (ex. : NotePad.exe sur les PC) Ecriture de simples caractres ASCII, (espace et
saut de ligne compris) aucune autre mise en page, aucun style de caractres (gras, italique )
Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 24/27

ver 1.0

Code ASCII de base sur 7 bits


o Traitement de texte (ex. : MS Word) Permet toutes les mises en page possibles, avec tableaux,
images Le fichier contient les caractres de texte, mais un grand nombre dautres octets de
mise en page et dinformation.
o Editeur Hexadcimal (exemple : Hexedit.exe pour PC) : permet de lire les octets dun fichier
quelconque en Hexadcimal. Si les octets correspondent par moment des caractres ASCII,
ceux-ci sont affichs en clair (dans une colonne de droite gnralement)
Le code ASCII de base sur 7 bits a t mis au point pour la langue anglaise, il ne contient donc pas de
caractres accentus, ni de caractres spcifiques une langue. Pour coder ce type de caractre il faut
recourir un autre code. Le code ASCII a donc t tendu 8 bits (un octet) par IBM pour pouvoir
coder plus de caractres (on parle d'ailleurs de code ASCII tendu...). Les 128 premiers caractres
correspondent au code ASCII de base sur 7 bits, les 128 suivants correspondent aux caractres accentus
et caractres spciaux : Caractres du latin non anglais, symboles de monnaies, lettre grecques, symboles
mathmatiques, caractres de dessin, etc.

Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 25/27

ver 1.0

Code ASCII tendu

Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 26/27

ver 1.0

Code ASCII tendu

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

()

Ainsi, 1 mga-octet (Mo) ou 1 MBytes (1 MB) est 220 octets.


64 Mo fait 64 220 octets = 67108864 octets.

Chapitre 1: Systmes de numrotation, codes binaires et arithmtique- 27/27

S-ar putea să vă placă și