Vous êtes sur la page 1sur 15

CHAPITRE 2 ARITHMETIQUE BINAIRE

1 ECRITURE OU NOTATION DES NOMBRES BINAIRES

1.1 Représentation des nombres binaires fractionnaires

Dans un calculateur, un nombre est toujours écrit sous forme d’un bloc de n éléments
binaires (considéré comme un entier N). Pour représenter les nombres fractionnaires il est
nécessaire de définir la position de la virgule. Pour ce faire, il existe deux méthodes :

– la représentation en virgule fixe ;


– la représentation en virgule flottante.

1.1.1 Ecriture en virgule fixe

On décide que la virgule est toujours à une position donnée (un entier peut être représentatif
d’un nombre fractionnaire si on connaît la place de la virgule).

Exemple 1

Exemple 2

Si on décide de définir 2 symboles pour les parties entières et 2 symboles pour les parties
fractionnaires, on ne peut plus écrire 256,1.
– utilisation limitée lorsqu’on traite des données de grandeurs différentes, car on doit prendre
un grand nombre de bits de part et d’autre de la virgule pour pouvoir représenter

1.1.2 Ecriture en virgule flottante


Exemple

2ème approche :
C’est la méthode inverse de la précédente : on considère que le bit le plus à gauche de la
mantisse a pour poids 2-1

Exemple

1.2 Notation ou codage des entiers signé

Un entier signé ou entier relatif est un entier qui porte un signe (+) ou (-). Par
convention le signe (+) est codé en 0 et (-) en 1. Dans la représentation binaire des entiers
signés, le signe est le bit situé à l’extrême gauche. On utilise généralement trois notations ou
écritures ou codages binaires pour exprimer un nombre signé :

1- Le codage en grandeur exacte ou valeur absolue et signe en abrégée VAS qui sera
utilisé le long du chapitre
2- Le codage en complément à 1 ou complément restreint (nous adoptons l’abréviation
CR pour designer ce type de codage)
3- Le codage en complément à 2 ou complément vrai qui sera noté CV

Lors du codage d’un entier signé il est impératif de préciser le nombre de bits sur lequel
le codage s’effectue et le système de codage utilisé (VAS ou CR ou CV).

1.2.1 Notation ou codage en valeur absolue et signe (VAS) sur n bits

Dans la représentation en VAS d’un entier relatif on conserve le code binaire naturel de
la valeur absolue de cet entier auquel on ajoute le bit de signe. Comme il est codé sur n bits
les nombres possibles de coder sont les entiers appartenant à l’intervalle [-2n +1 ; 2n-1]. Le
bit de signe n’étant pas compté.

Exemple : Codage VAS sur 5 bits

Les nombres représentables en VAS sur appartiennent à l’intervalle [-25 +1 ; 25-1] = [-31 ; 31] ;

+27 ; -30 ; +15 et - 12 sont représentés en VAS comme suit

+ 27 = (0 11011) en VAS /5 ; - 30 = (1 11110) en VAS /5 ;

+ 15 = (0 01111) en VAS /5 et - 12 = ( 1 01100) en VAS /5

1.2.2 Notation ou codage en complément restreint (CR) sur n bits

La représentation d’un entier positif en CR est identique à sa représentation en VAS. Par


contre la notation d’un entier négatif en CR s’obtient à partir de son écriture en VAS en
remplaçant les 0 par 1 et les 1 par 0 sauf le bit du signe qui reste tel quel. Aussi les nombres
possibles d’écrire en CR sur n bits sont dans l’intervalle [-2n +1 ; 2n-1]. Le bit de signe
n’étant pas compté.

Exemple : Codage CR sur 5 bits

Les nombres représentables en CR sur appartiennent à l’intervalle [-25 +1 ; 25-1] = [-31 ; 31] ;

+27 ; -30 ; +15 et - 12 sont représentés en VAS comme suit

+ 27 = ( 0 11011 )VAS /5 = (0 00100 )CR/5 ; - 30 = ( 1 11110)VAS /5 = (1 00001 )CR /5;


+ 15 = (0 01111)VAS/5 = (0 10000)CR/5 et - 12 = (1 01100)VAS/5 = (1 10011)VAS/5

1.2.3 Notation ou codage en complément vrai (CV) sur n bits

Les nombres possibles d’écrire en CR sur n bits sont dans l’intervalle [-2n +1 ; 2n-1]. Le
bit de signe n’étant pas compté. La représentation d’un entier positif en CV est identique à
sa représentation en CR donc même qu’en VAS. Par contre la notation d’un entier négatif
en CV s’obtient à partir de son écriture en CR auquel on rajoute 1.

Exemple Codage CV sur 5 bits

Les nombres représentables en CR sur appartiennent à l’intervalle [-25 +1 ; 25-1] = [-31 ; 31] ;

+27 ; -30 ; +15 et - 12 sont représentés en CV comme suit

+ 27 = (0 11011 )VAS /5 = (0 00100 )CR/5 = (0 00101 )CR/5

- 30 = (1 11110)VAS /5 = (1 00001 )CR /5 = (1 00010 )CR /5;

+ 15 = (0 01111)VAS/5 = (0 10000)CR/5 = (0 10001)CR/5

- 12 = (1 01100)VAS/5 = (0 01100)CR/5 = (0 01101)CR/5

Exercices
1- Représenter les nombres signés suivants en notation VAS, CR et CV en utilisant 8 bits y
compris le bit de signe : a) +31 b) -14 c) 63 d) -104 e) - 1 f) -128 g) +128
2- Voici une liste de nombres codés en CV, donner la valeur décimale de ces nombres :
a) 01101 b) 11101 c) 01111011 d) 10011001 e) 0111111111 f) 1000000
g) 1111111 h) 10000001

3- a) Dites quelle est l’intervalle des valeurs entières signées que l’on peut représenter avec 12 bits
y compris le bit de signe ?

b) Combien de bits faut-il pour coder en binaire les entiers relatifs compris entre +32768 et –
c) 32767 ?

2 ADDITION ET SOUSTRACTION BINAIRE

Avant d’aborder les différentes méthodes de calcul nous indiquons les règles élémentaires
qui sont utilisées pour effectuer ces différentes opérations :

 Addition élémentaire

L’addition en binaire se fait avec les mêmes règles qu’en décimal : on commence par
additionner les bits de poids faibles ; on a des retenues lorsque la somme de deux bits de
même poids dépasse la valeur de l’unité la plus grande (dans le cas du binaire : 1) ; cette
retenue est reportée sur le bit de poids plus fort suivant.
La table d’addition binaire est la suivante :
Exemple
Soit à effectuer l’addition de deux nombres binaires A et B tels que :
A= 11001011 (203 en décimal)
B= 10011110 (158 en décimal)
Au premier rang (20), il n’y a pas de retenue et le total A0+B0 est
bien égal à 1,

- Au rang suivant (21), il n’y a pas de retenue aval et le total A1+B1


est égal à 2. On pose donc 0 et on retient 1 puisque 2 s’écrit 10 en
binaire.

 - Au rang suivant (22), on additionne la retenue aval soit 1 avec A2 et


B2 se qui donne 1+0+1=10. On pose 0 et on retient 1.

- Au rang suivant (23), on additionne la retenue aval soit 1 avec A3 et


B3
---

Le résultat définitif est donc 101101001 soit 361 en décimal qui correspond bien à 203 + 158.

 Soustraction élémentaire

Dans la soustraction binaire, on procède comme en décimal. Quand la quantité à


soustraire est supérieure à la quantité dont on soustrait, on emprunte 1 au voisin de gauche. En
binaire, ce 1 ajoute 2 à la quantité dont on soustrait, tandis qu’en décimal il ajoute 10.
La table de soustraction binaire est la suivante :

Exemple
2-1 Addition –Soustraction en valeur absolue et signe VAS

 Si les nombres ont le même signe, on effectue les sommes de la valeur absolue et le résultat
Règle :

 Si les signes sont de signes différents, on effectue la différence de la valeur absolue et le


porte le signe commun

résultat porte le signe plus grand nombre en valeur absolue

Exemple :

Effectuer en VAS/4 les opérations suivantes : (i) 5+3 ; (ii) -5-3 ; (iii) -5+3 (iv) -5+5
0 0101 1 0101 1 0101 1 0101
+ + - -
0 0011 1 0011 0 0011 0 0 101
=0 1000 =1 1000 =1 0010 =1 0 00 0 -0
Ou
+8 (i) -8 (ii) -2 (iii) 0 000 0 +0
(iv)
(1

Remarque

Dans les calculs en VAS les bits de signe n’étant pas affectés par les opérations, il ressort
que zéro a deux représentations (+ 0 ou -0) puisque les nombres dont la différence donne zéro
sont toujours égaux en valeur absolue.

La plus part des machines modernes utilisent la notation CV pour représenter les nombres
négatifs. Ainsi la soustraction revient à une opération d’addition. C’est un grand avantage non
négligeable puisqu’ainsi, dans les machines numériques, un seul et même circuit réalise l’addition et
la soustraction ce qui économise les nombres de circuits nécessaire. Nous limiterons ainsi à l’addition
en CV.

2-2 Addition - Soustraction en CV

2.2.1 Addition en CV

- Cas 1 : les nombres sont positifs

L’addition de deux nombres sont positifs est immédiate.

Soit l’addition de + 9 et de + 4 :

+9 0 1001 cumulande

+4 0 0100 cumulateur

0 1101 somme = + 13

Bits de signe
Remarquez que les bits de signe du cumulande et du cumulateur sont 0 et que celui de la
somme est aussi 0, ce qui indique un nombre positif. Notez aussi qu’on a fait de sorte que le
cumulande et le cumulateur aient le même nombre de bits. Il faut toujours s’assurer de cela
dans la notation en complément à 2.

- Cas 2 : Un nombre positif et un nombre négatif plus petit

Soit l’addition de + 9 et - 4.

Pour effectuer une telle opération le calculateur transforme - 4 en notation en CV :

-4 (1 0100)VAS/4 = (1 1011)CR/4= (1 1100) CV/4

Ensuite il additionne +9 noté en VAS et -4 noté en CV/4

+9 0 1001 cumulande

-4 1 1100 cumulateur

1 0 0101

Ce report n’est pas pris en compte de sorte que le résultat est


0 0101 (somme = +5)

Dans ce cas si le bit de signe du cumulateur est 1. Remarquez que les bits de signe sont aussi
additionnés. En fait un report est produit au moment de l’addition du dernier rang ce report est
toujours rejeté d’où la somme finale de 00101 soit le décimal +5

- Cas 3 : Un nombre positif et un nombre négatif plus grand

Soit - 9 et + 4 .

-9 est noté en CV -9 = (1 0111)CV/4

9 1 0111

+4 0 0100

1 1011 somme = -5

bit de signe négatif.

Dans ce cas si le bit de signe de la somme est 1 ce qui un nombre négatif. Comme la
somme est un nombre négatif, la réponse est le complément à deux de la grandeur exacte.
Donc 1011 est en réalité le complément à 2 de la somme. Pour trouver la grandeur exacte de
la somme, on doit prendre le complément à 2 de 1011, ce qui donne 0101 (5) ; la réponse est
donc (-5).

- Cas 4 : deux nombres négatifs

-9 est noté en CV -9 = (1 0111)CV/4


-4 est noté en CV - 4 = (1 1100) CV/4

-9 1 0111

-4 1 1100

1 1 0011

Bit de signe
Ce reporte n’est pas pris en compte, le résultat est donc 10011.

Le résultat définitif est de nouveau négatif, et la réponse trouvée est le complément à 2 de la réponse
précédé du bit de signe 1. Remarquez que 0011 est le complément à 2 de 1101 ( 13)

-Cas 5 : nombres égaux et opposés

-9 1 0111

+9 0 1001

= 0 100000

Rejeté le resultat est donc 00000 (+0)

2.2.2 Soustraction en CV

Une soustraction peut toujours, si on rend négatif son second terme, se ramener à une
addition, ainsi :
[A-B]= [A+(-B)]
La méthode la plus utilisée pour rendre négatif un nombre binaire est la méthode du
complément à 2.

Une soustraction se ramène donc à une addition comme vue précédemment.

Exemple soit l’opération précédente : 195 –96. En effet 195 – 96 = 195 + (-96) soit en binaire
:

195(10) = 110000112 et 96(10) = 011000002

En représentation signée binaire, le MSB représente le signe (0 si + et 1 si -). Les nombres


signés sont également formatés c-à-d qu’ils sont représentés sur un nombre fixe de bits. Un
nombre négatif s’obtient en complémentant à 2, le même nombre positif.
Si l’on travaille en représentation signée, le nombre 195 (+195) doit être représenté sur plus
de 8 bits si l’on veut que son bit de signe soit positif. Nous travaillerons donc sur 9 bits pour
représenter son signe.
L’opération 195 – 96 = 195 + (-96) s’écrit :

Soustraction dans le cas des calculateurs

L’opération de base des calculateurs électroniques est l’addition. Le résultat d’une


soustraction de deux nombres binaires est en fait obtenu par l’addition du premier nombre par
le complément à 2 du deuxième. Dans le cas d’un automate programmable, les nombres
entiers sont stockés dans des mots formatés généralement sur 8, 16 ou 32 bits. Le bit de poids
le plus fort (MSB) représente le signe
(0 pour positif et 1 pour négatif).

Soit à effectuer l’opération D = A – B

Premier cas : |A| > |B|


Deuxième cas : |A| < ou = |B|

Remarque
Le résultat de l'opération doit être inférieure à 2N , c'est à dire qu'en valeur absolue sa
représentation binaire comporte N bits au plus en effet sur n bit les entiers possibles d’être
représenté sont dans l’intervalle [-2n +1 ; 2n-1]. Les cas qui peuvent poser problèmes sont
ceux ou le signe des deux opérandes de l'addition est identique. Dans ce cas, il peut y avoir
dépassement ou débordement de capacité ou overflow et l'addition de deux nombres
positifs peut donner un résultat négatif. Un bit de signalisation de dépassement de capacité
(Overflow flag) est généré par le calculateur.
Effectuer l’opération suivante pour s’en rendre compte -9-8 et 9+8

Exercices

1- Effectuer les opérations suivantes en CV sachant les nombres sont exprimés en VAS
a/ 11011011-01101011 ; b/ 1011 – 0011 ; c/ 01101011 – 11011011
2- Effectuer sur cinq bits les opérations suivantes en VAS et en CV
a/ 31-24 ; b/ 15 + 8 ; c/ 8 - 8 ; d/ - 8-15 e/ - 24 – 31

2.3 Addition - Soustraction en BCD

Rappel : Dans le code DCB, chaque chiffre décimal (0,1, . . . ,9) est codé en binaire avec 4
éléments binaires. Il ne faut pas confondre le code DCB et le code binaire pur : quand on code
selon le code binaire pur on prend le nombre dans son intégralité et on le convertit ; par
contre, quand on code en DCB on code chaque chiffre indépendamment les uns des autres.

Exemple (137)10 =(010001001)2 = (000100110111)BCD

Comme tous les systèmes de codage pondérés, il est possible d’appliquer des opérations
arithmétiques aux nombres codés en DCB. L’arithmétique DCB est en fait une arithmétique
modulo 6.

2.3.1 Addition en BCD

L’addition de deux nombres codés en DCB ne pose pas de problème tant que le résultat est
inférieur ou égal à 9 :

Par contre, dès que le résultat est supérieur à 9, il faut apporter une correction en
additionnant 6, de manière à obtenir une réponse valide. Ceci est dû au fait que l’on
représente un nombre modulo 10 avec un code modulo 16 : 16 = 10 - 6.

La correction est ici évidente, puisque la valeur obtenue est invalide en codage DCB.
L’exemple suivant est moins évident :
Dans ce dernier exemple, la correction est due au fait qu’il a eu débordement sur les 4 bits
de poids faible du mot DCB : il faut donc apporter une correction sur ces 4 bits de poids
faible.
Note
- lorsque le résultat de l'addition DCB est inférieur à 9, on ne change pas le résultat ;
- lorsque le résultat de l'addition DCB est supérieur à 9, on ajoute 6 au résultat pour obtenir la
valeur exacte ;
- lorsqu'il y a une retenue auxiliaire (ou décimale) (auxiliary ou decimal carry), on ajoute
également 6 au résultat obtenu, même si la valeur est inférieure à 9.

Les propriétés énoncées ci-dessus pour les chiffres des unités sont évidemment valables
pour les dizaines, les centaines, etc. La correction à apporter sera alors – selon les
circonstances + 6, + 60, +66, etc.

2.3.2 Soustraction en DCB

La soustraction en DCB se comporte exactement comme l’addition, au signe près.

Note
- lorsque le résultat de la soustraction DCB est inférieur à 9, on ne change pas le résultat
;
- lorsque le résultat de la soustraction DCB est supérieur à 9, on soustrait 6 au résultat
pour obtenir la valeur exacte ;
- lorsqu'il y a une retenue soustractive (borrow), on soustrait également 6 au résultat
obtenu, même si la valeur est inférieure à 9.

Exercice :

Effectuer en BCD

a/ 174 + 46 b/ 95 +55 c/ 103 +358 d/ 74 + 23 e/ 147 + 380

3 MULTIPLICATION BINAIRE

3.1 Multiplication élémentaire

Les règles de calcul sont faciles car ici on n’a que deux nombre contrairement en décimal où
on a une table de multiplication.

0 0 1 1
X 0 X 1 X 0 X 1
=0 = 0 = 0 = 1

3.2 Multiplication en notation exacte ou en VAS

Lorsqu’on effectue une multiplication, on effectue l’opération sur la valeur absolue des
nombres puis on effectue au résultat le bit de négatif (1) si les nombres sont de signes
opposés, sinon on y affecte le bit de signe positif (0).
Exemple effectuer les opérations suivantes (i) +9 * (+2) et (-11) * (4)

(i) (ii)
0 1001 1 1011
X X
0 10 0
100
0000 0000
1001 0000
1011
= 0 10010 = 1 101100

Multiplication à CV

Dans les machines qui utilisent la notation à CV, la multiplication est effectué de la meme
façon que ci-dessus quand le multiplicateur et le multiplicande sont exprimés en notation
VAS. Si les deux nombres sont positifs, ils sont déjà dans cette notation et ils sont multipliés
tels quel. Le produit est évidemment positif et son signe est 0. Quand les deux nombres sont
négatifs, ils sont complémentés à 2. Ce sont ces compléments qu’on multiplie. Le produit est
un nombre positif dont le bit est 0. Quand un des deux nombres est positif et l’autre négatif,
le nombre négatif est complémenté à 2 d’abord pour obtenir une grandeur positive. Le produit
est exprimé selon la natation exacte. Cependant, le produit doit être négatif car les nombres
sont de signes opposés. Par conséquent, on complémente à 2 le produit et on ajoute le bit de
signe 1.

Exercice

a/ 111x 101 b/ 1011 x 101 c/ 1011x 1011

4 ARITHMETIQUE HEXADECIMAL

La méthode du complément à deux en binaire peut être extrapolée pour toutes les autres
bases.
En binaire il faut faire le complément à 2 : le complément à 2 = (complément à 1) + 1
En décimal il faut faire le complément à 10 : le complément à 10 = (complément à 9) + 1

En Hexadécimal il faut faire le complément à 16 :le complément à 16 = (complément à15) + 1

4.1 Généralisation de notion de complément

4.1.1Complément à b-1 d'un nombre N exprimé dans une base b par rapport à un radical

Le radical est une puissance de b qui doit être supérieure à la valeur de N. Pour trouver le
complément à b-1 de N par rapport à ce radical il faut soustraire N de ce radical diminué d'une
unité de poids le plus faible.
Exemple : Le complément à 9 de (527,1920)10 par rapport à (103)10 ou (1000)10 est:
(999,9999)10 - (527,1920)10 = (472,8079)10

D'autre part, le complément à b-1 peut être obtenu en complémentant chaque position de la
représentation à b-1.

4.1.1 Complément à b d'un nombre N exprimé dans une base b par rapport à un radical

Le radical est une puissance de b qui doit être supérieure à la valeur de N. Pour trouver le
complément à b de N, par rapport à ce radical, il suffit de soustraire le nombre N du radical.

Exemple : Le complément vrai ou complément à 10 de (527,1920)10 par rapport à (103)10 ou


(1000)10 est:
(1000)10 - (527,1920)10 = (472,8080)10

Nous voyons que le complément à b de N s'obtient en complémentant à b le premier


chiffre non nul en partant de la droite et tous les autre à b-1.

4.2 Addition hexadécimal

Les règles sont les mêmes que celles de l’addition en décimal ou en binaire à la seule
différence que la retenue est égale à 1 dès que la somme de deux digits atteint 16.

Exemple soit à additionner les deux nombres :

A = CB soit 203(10)
B = 9E soit 158(10)

B+ E = 11 + 14 = 25 en décimal soit 19 en hexadécimal. On pose 9 et on retient 1


1 + C + 9 = 1 + 12 + 9 = 22 en décimal soit 16 en hexadécimal. On pose 6 et on retient 1
Le résultat définitif est donc 169(16) soit 361 en décimal qui correspond bien à 203 + 158.
4.3 Soustraction hexadécimal

Exercice

Effectuer les opérations

a/ 3E91+2F93 b/ 91B + 6F2 c/ 3E91 -2F93 d/ 91B - 6F2 e/ 0300-005A

Vous aimerez peut-être aussi