Chapitre02 Arithmetique Binaire

Vous aimerez peut-être aussi

Vous êtes sur la page 1sur 37

Chapitre 02 : Arithmétique binaire

Electronique numérique
Chapitre 02 : Arithmétique binaire

J.ZAIDOUNI
Université Mohammed Premier
ENSA Oujda, 2015/2016

1/37
Chapitre 02 : Arithmétique binaire

Sommaire
1 Addition binaire
Addition binaire des entiers non-signés
Addition binaire des entiers signés
2 Soustraction binaire
Soustraction binaire des entiers non-signés
Soustraction binaire des entiers signés
3 Multiplication binaire
Multiplication binaire des entiers non-signés
Multiplication binaire des entiers signés
4 Division binaire
Division binaire des entiers non-signés
Division binaire des entiers signés
5 Addition en BCD
6 Opérartions arithmétiques des réels en virgule flottante
2/37
Chapitre 02 : Arithmétique binaire
Addition binaire
Addition binaire des entiers non-signés

Addition Binaire (non-signé)

L’addition de deux nombres binaires est parfaitement analogue


à l’addition de deux nombres décimaux.
cumulande : 1er nombre (175)
cumulateur : 2ème nombre (216)
somme=cumulande+cumulateur
1
cumulande 1 7 5
+ + 2 1 6
cumulande
= somme = 3 9 1
Les mêmes règles s’appliquent à l’addition binaire.
0 + 0 = 0
1 + 0 = 1
1 + 1 = 10 = 0 + retenue de 1 sur le rang de gauche
1 + 1 + 1 = 11 = 1 + retenue de 1 sur le rang de gauche
3/37
Chapitre 02 : Arithmétique binaire
Addition binaire
Addition binaire des entiers non-signés

Addition Binaire (non-signé)

L’addition est l’opération arithmétique la plus importante dans


les systèmes numériques.
Les opérations de soustraction, de multiplication et de division
effectuées (en binaire) par les ordinateurs ne sont
essentiellement que des variantes de l’opération d’addition.
soit A, B et S = A + B : sont des entiers non-signés codés sur
n bits (I = [0, 2n − 1]).
Le résultat sur n bits est :
1 correct si S = r ésultat = r ésultat attendu ∈ I ⇐⇒ si pas de
retenue
2 faux si S = r ésultat 6= r ésultat attendu ∈
/ I (on a un Overflow,
dépassement du format) ⇐⇒ si retenue

4/37
Chapitre 02 : Arithmétique binaire
Addition binaire
Addition binaire des entiers non-signés

Addition Binaire (non-signé)

Exemples : Addition sur 4 bits (I = [0, 24 − 1] = [0, 15])


cas de gauche : S = r ésultat = r ésultat attendu = 13 ∈ I
cas de droite : S = r ésultat = 9 6= r ésultat attendu = 25 ∈
/I
1 1 1
1 0 1 1 1 1 1 1 1 1 1 5
+ 0 0 1 0 + 2 + 1 0 1 0 + 1 0
= 1 1 0 1 = 1 3 = 1 1 0 0 1 = 2 5
Binaire Décimal Binaire Décimal

5/37
Chapitre 02 : Arithmétique binaire
Addition binaire
Addition binaire des entiers non-signés

Addition Binaire (non-signé)

Exemples : Addition sur 8 bits (I = [0, 28 − 1] = [0, 255])


cas de gauche : S = r ésultat = r ésultat attendu = 135 ∈ I
cas de droite : S = r ésultat = 9 6= r ésultat attendu = 265 ∈
/I
1 1 1 1 1 1 1
0110 0100 100 1010 1010 170
+ 0010 0011 + 35 + 0101 1111 + 95
= 1000 0111 = 135 =1 0 0 0 0 1001 = 265
Binaire Décimal Binaire Décimal

6/37
Chapitre 02 : Arithmétique binaire
Addition binaire
Addition binaire des entiers signés

Addition en complément à 2

On travaille ici avec des nombres représentés dans la base C 2.


Exemples pour des additions sur 5 bits (cumulande,
cumulateur et somme codés sur 5 bits).
Les 3 nombres A,B et S = A + B appartiennent à
I = [−25−1 , 25−1 − 1] = [−16, 15]
5 cas possibles :
1 Deux nombres positifs :
2 Nombre positif et nombre négatif plus petit en module
3 Nombre positif et nombre négatif plus grand en module
4 Deux nombres négatifs
5 Deux nombres égaux et opposés

7/37
Chapitre 02 : Arithmétique binaire
Addition binaire
Addition binaire des entiers signés

Addition en complément à 2

Cas1: + + + = + Cas2: + + - = +
R34 0 R23 R12 R01
R34 1
01001 +9 01001 +9
+ + + +
00100 +4 11100 -4
= 001101 = +13 = 100101 = +5
R45 R45

Cas3: + + - = - Cas4: - + - = -
R34 0 R34 1
00100 +4 11100 -4
+ + + +
10111 -9 10111 -9
= 011011 = -5 = 110011 = -13
R45 R45

8/37
Chapitre 02 : Arithmétique binaire
Addition binaire
Addition binaire des entiers signés

Addition en complément à 2

Cas5: + + - = 0
R34 1
00100 +4
+ +
11100 -4
= 100000 = 0
R45

9/37
Chapitre 02 : Arithmétique binaire
Addition binaire
Addition binaire des entiers signés

Addition en complément à 2
Examinons les 2 cas suivants :

Cas1: + + + = - Cas2: - + - = +
R34 1 R34 0
01111 +15 10110 -10
+ + + +
01000 +8 10111 -9
= 010111 = +23 = 101101 = -19
R45 R45

Dans les 2 cas nous avons :


le résultat à un signe différent du signe attendu
r ésultat attendu ∈ / I = [−16, 15]
des résultats faux : on a un dépassement de format (Overflow).
Cas 1 : S = r ésultat = −9 6= r ésultat attendu = +23 ∈
/I
Cas 2 : S = r ésultat = +13 6= r ésultat attendu = −19 ∈
/I
10/37
Chapitre 02 : Arithmétique binaire
Addition binaire
Addition binaire des entiers signés

Addition en complément à 2

En additionnant deux nombres de signes différents, il ne peut


pas y avoir de dépassement,
Par contre lorsqu’on additionne deux nombres de même signe,
on a un dépassement si le signe du résultat est différent du
signe des deux nombres additionnés.
En équivalent décimal, nous avons un dépassement si
r ésultat attendu ∈
/ I = [−16, 15]
En C 2, nous avons un dépassement si la retenue de la position
4 vers 5 (R45 ) est différente de la retenue de la position 3 vers
4 (R34 )
donc, un résultat faux si R34 6= R45
En C 2, nous n’avons pas de dépassement si R34 = R45
donc, un résultat correct si R34 = R45
11/37
Chapitre 02 : Arithmétique binaire
Addition binaire
Addition binaire des entiers signés

Addition en complément à 2

Soit A, B et S = A + B : sont des entiers signés codés sur n


bits (I = [−2n−1 , 2n−1 − 1]).
Le résultat sur n bits est :
1 correct si S = r ésultat = r ésultat attendu ∈ I ⇐⇒si
R(n−1)n = R(n−2)(n−1)
2 faux si S = r ésultat 6= r ésultat attendu ∈
/ I (on a un Overflow,
dépassement du format) ⇐⇒si R(n−1)n 6= R(n−2)(n−1)

12/37
Chapitre 02 : Arithmétique binaire
Addition binaire
Addition binaire des entiers signés

Addition en complément à 2

Soit :A = (An−1 An−2 ... A0 )C 2 , B = (Bn−1 Bn−2 ... B0 )C 2


et S = A + B = (Sn−1 Sn−2 ... S0 )C 2

+
=
On a un dépassement du format dans les 2 cas :
1 A et B sont positifs (An−1 = Bn−1 = 0) et S est négatif
(Sn−1 = 1)
2 A et B sont négatifs (An−1 = Bn−1 = 1) et S est positif
(Sn−1 = 0).
13/37
Chapitre 02 : Arithmétique binaire
Addition binaire
Addition binaire des entiers signés

Exemple : Addition en C2 sur 3 bits (I=[-4,3])

A
B

14/37
Chapitre 02 : Arithmétique binaire
Soustraction binaire
Soustraction binaire des entiers non-signés

Soustraction Binaire (non-signé)

Soustraction de 2 nombres : différence= diminuande -


diminuteur
Soit A, B et D = A − B : sont des entiers non-signés codés
sur n bits (I = [0, 2n − 1]).
Le résultat sur n bits est :
1 correct si A ≥ B ⇐⇒ si D = r ésultat = r ésultat attendu ∈ I
2 faux si A < B ⇐⇒ si D = r ésultat 6= r ésultat attendu ∈
/I

15/37
Chapitre 02 : Arithmétique binaire
Soustraction binaire
Soustraction binaire des entiers non-signés

Soustraction Binaire (non-signé)

Exemples : Soustraction sur 4 bits (I = [0, 24 − 1] = [0, 15])


cas de gauche : D = r ésultat = r ésultat attendu = 9
cas de droite : D = r ésultat = 11 6= r ésultat attendu = −5

1 0 1 1 1 1 1 10 11 10
1 1 0
- 0 0 1 0 - 2 - 11 11 1 1 - 1 5
1 1

= 1 0 0 1 = 9 = 1 1 0 1 1 = - 5
Binaire Décimal Binaire Décimal

16/37
Chapitre 02 : Arithmétique binaire
Soustraction binaire
Soustraction binaire des entiers signés

Soustraction en complément à 2

Soustraction de 2 nombres : différence= diminuande -


diminuteur
Soustraction est une addition avec le changement de signe du
diminuteur : différence= diminuande + (-diminuteur)
Marche à suivre :
1 Changer le signe du diminuteur (complément à 2).
2 Additionner le résultat au diminuande qui est conservé sa
forme initiale.
Exemple : Soustraction suivante : +9 - (+4) = +5.
diminuande (+ 9) 01001
diminuteur (+ 4) 00100 , CM2(diminuteur)=11100 (-4)

17/37
Chapitre 02 : Arithmétique binaire
Soustraction binaire
Soustraction binaire des entiers signés

Soustraction en complément à 2

R34 1
01001 +9
+ +
11100 -4
= 100101 = +5
R45

Puisque une soustraction est une addition on a les mêmes


régles de dépassement.
Pour n=5 bits :
on a un dépassement si R34 6= R45
on a un résultat correct si R34 = R45
on peut additionner et soustraire en utilisant les mêmes
circuits.
18/37
Chapitre 02 : Arithmétique binaire
Soustraction binaire
Soustraction binaire des entiers signés

Soustraction en complément à 2

soit A, B et D = A − B : sont des entiers signés codés sur n


bits (I = [−2n−1 , 2n−1 − 1]).
Le résultat sur n bits est :
1 correct si D = r ésultat = r ésultat attendu ∈ I
2 faux si D = r ésultat 6= r ésultat attendu ∈
/ I (on a un
Overflow, dépassement du format)

19/37
Chapitre 02 : Arithmétique binaire
Multiplication binaire
Multiplication binaire des entiers non-signés

Multiplication binaire non-signée


On multiplie les nombres entiers binaires non-signés (notation
binaire exacte) de la même façon qu’on multiplie les nombres
décimaux.
Produit = multiplicande * multiplicateur
Produit partiel + décalage d’un rang vers la gauche
Produit= Somme des produits partiels
Exemple : n=4 bits.
1001 9
* 1011 * 11
1001 = 99
1001 .
0000 . .
1001 . . .
= 1100011
20/37
Chapitre 02 : Arithmétique binaire
Multiplication binaire
Multiplication binaire des entiers non-signés

Multiplication binaire non-signée

Soit A, B : sont des entiers non-signés codés sur n bits


(I1 = [0, 2n − 1]).
Soit leur produit P = A ∗ B : un entier non-signé codé sur 2n
bits (I2 = [0, 22n − 1]).
Le résultat sur 2n bits est toujours correct : P ∈ I2
Exemple : n=4 bits : I1 = [0, 15] et I2 = [0, 255]
A = max = (1111)2 = (15)10
B = max = (1111)2 = (15)10
P = A ∗ B = (1110 0001)2 = 15 ∗ 15 = (225)10 ∈ I2

21/37
Chapitre 02 : Arithmétique binaire
Multiplication binaire
Multiplication binaire des entiers signés

Multiplication en complément à 2

Soit A, B : sont des entiers signés codés sur n bits


(I1 = [−2n−1 , 2n−1 − 1]).
Soit leur produit P = A ∗ B : un entier signé codé sur 2n bits
(I2 = [−22n−1 , 22n−1 − 1]).
Le résultat sur 2n bits est toujours correct : P ∈ I2
Exemple :n=4 bits : I1 = [−8, 7] et I2 = [−128, 127]
max : (−8)10 ∗ (−8)10 = (64)10 ∈ I2
min : (−8)10 ∗ (7)10 = (−56)10 ∈ I2

22/37
Chapitre 02 : Arithmétique binaire
Multiplication binaire
Multiplication binaire des entiers signés

Multiplication en complément à 2
Trois cas possibles selon le signe des 2 nombres à multiplier :
Cas1 : Les 2 nombres sont positifs :
Ils sont déjà dans la notation binaire exacte (bit de signe=0,
donc même représentation en C2 et en binaire exacte)
La multiplication est similaire que dans notation binaire exacte
.
Exemple :n=4 bits A = (+5)10 = (0101)C 2 et
B = (+7)10 = (0111)C 2 ,
P = A ∗ B = (0010 0011)C 2 = (+35)10
0101 +5
* 0111 * +7
0101 = +35
0101 .
0101 . .
0000 . . .
= 00100011
23/37
Chapitre 02 : Arithmétique binaire
Multiplication binaire
Multiplication binaire des entiers signés

Multiplication en complément à 2

Cas 2 : Les 2 nombres sont négatifs :


Chacun de ces nombres est complémenté à 2 pour obtenir un
nombre positif et ce sont les résultats de ces complémentations
qu’on multiplie.
Le produit est un nombre positif dont le bit de signe est 0.
Exemple :n=4 bits A = −5 = (1011)C 2 et
B = −7 = (1001)C 2 , P= ?
C 2(A) = (0101)C 2 et C 2(B) = (0111)C 2 ,
P = C 2(A) ∗ C 2(B) = A ∗ B = (0010 0011)C 2 = (+35)10

24/37
Chapitre 02 : Arithmétique binaire
Multiplication binaire
Multiplication binaire des entiers signés

Multiplication en complément à 2

Cas 3 : Les 2 nombres sont de signes différents :


Le nombre négatif est d’abord complémenté à 2 pour obtenir
une grandeur positive
Le produit est exprimé selon la notation en grandeur exacte
On complémente à 2 le produit obtenu.
Exemple :n=4 bits A = (+5)10 = (0101)C 2 et
B = (−7)10 = (1001)C 2 , P= ?
A = (0101)C 2 et C 2(B) = (0111)C 2
P 0 = A ∗ CM2(B) = −A ∗ B = (0010 0011)C 2
donc P = CM2(P 0 ) = A ∗ B = (1101 1101)C 2 = (−35)10

25/37
Chapitre 02 : Arithmétique binaire
Division binaire
Division binaire des entiers non-signés

Division binaire non-signée

Il s’agit de la division entière et est identique à la division de


deux nombres décimaux.
le quotient = dividende / diviseur et le reste = dividende-
quotient * diviseur.
Soit A, B, Q et R : sont des entiers non-signés codés sur n
bits (I = [0, 2n − 1]).
Avec Q est le quotient et R est le reste : Q = A/B et
R = A − B ∗ Q.
Le résultat sur n bits est toujours correct : Q ∈ I (et R ∈ I )
sauf pour : B = 0 : division impossible.

26/37
Chapitre 02 : Arithmétique binaire
Division binaire
Division binaire des entiers non-signés

Division binaire non-signée

Exemple :n=5 bits (I = [0, 31]) A = (15)10 = (01111)2 et


B = (4)10 = (00100)2
donc : Q = A/B = (3)10 = (00011)2 et R = (3)10 = (00011)2

-1111 100 15 4
100 11 3 3
=0 1 1 1
- 100
=011

le maximum pour le quotient :


max(Q) = max(A)/min(B) = 31/1 = 31 ∈ I
27/37
Chapitre 02 : Arithmétique binaire
Division binaire
Division binaire des entiers signés

Division en complément à 2

La division de nombres signés s’effectue de la même façon que


la multiplication.
Les nombres négatifs sont complémentés pour obtenir des
nombres positifs puis la division est effectuée
Soit A, B, Q et R : sont des entiers signés codés sur n bits
(I = [−2n−1 , 2n−1 − 1]).
Avec Q est le quotient et R est le reste : Q = A/B et
R = A − B ∗ Q.
Le résultat sur n bits est toujours correct : Q ∈ I (et R ∈ I )
sauf pour : B = 0 : division impossible.
sauf pour : un nombre A et un nombre B telle que
Q = A/B ∈ /I

28/37
Chapitre 02 : Arithmétique binaire
Division binaire
Division binaire des entiers signés

Division en complément à 2

3 cas possibles.
Cas1 : Les 2 nombres sont positifs :
Exemple :n=5 bits (I = [−16, 15])
Exemple : A = (+15)10 = (01111)C 2 et
B = (+4)10 = (00100)C 2
donc : Q = A/B = (3)10 = (00011)C 2 et
R = (3)10 = (00011)C 2 (le même exemple que celui du
non-signé).

29/37
Chapitre 02 : Arithmétique binaire
Division binaire
Division binaire des entiers signés

Division en complément à 2

Cas2 : Les 2 nombres sont négatifs :


Exemple : A = (−15)10 = (10001)C 2 et
B = (−4)10 = (11100)C 2
C 2(A) = −A = (+15)10 = (01111)C 2 et
C 2(B) = −B = (+4)10 = (00100)C 2
donc : Q = C 2(A)/C 2(B) = A/B = (3)10 = (00011)C 2 et
R = (3)10 = (00011)C 2

30/37
Chapitre 02 : Arithmétique binaire
Division binaire
Division binaire des entiers signés

Division en complément à 2

Cas3 : Les 2 nombres sont de signes différents :


Exemple : A = (+15)10 = (01111)C 2 et
B = (−4)10 = (11100)C 2
C 2(B) = −B = (+4)10 = (00100)C 2
donc : Q 0 = A/C 2(B) = −A/B = (3)10 = (00011)C 2 et
R = (3)10 = (00011)C 2
Le C2 du Q’ :Q = C 2(Q 0 ) = A/B = (11101)C 2 = (−3)10 et
R = (00011)C 2 = (+3)10

31/37
Chapitre 02 : Arithmétique binaire
Addition en BCD

Addition en BCD

De nombreux ordinateurs représentent les nombres décimaux


au moyen du code BCD.
Ce code fait correspondre à chaque chiffre décimal un code de
4 bits compris entre 0000 et 1001 (0 et 9).
Somme égale ou inférieure à 9 : addition est effectuée comme
une addition binaire normale.
Exemples :

0101 5 0100 0101 45


+ + + 0010 +
0100 4 0011 23
= 1001 = 9 = 0110 1000 = 68

32/37
Chapitre 02 : Arithmétique binaire
Addition en BCD

Addition en BCD
Somme supérieure à 9 :
0110 6
+ +
0111 7
= 1101 = 13

La somme 1101 n’existe pas dans le code BCD (parmi les 6


codes interdits de 10 à 15)
Dans un tel cas, il faut corriger la somme en additionnant 6
(0110) afin de prendre en considération le fait qu’on saute les
six représentation interdites.
0110 6
+ +
0111 7
BCD invalide 1101 = 13
+
Ajout de 6 0110
= 0001 0011
33/37
Chapitre 02 : Arithmétique binaire
Addition en BCD

Addition en BCD

L’addition de 0110 à la somme non valide donne la


représentation BCD exacte.
Une retenue a lieu sur le chiffre décimal de deuxième rang (le
chiffre 1).
Exemple :

0100 0111 47
+ +
0011 1000 38
1 1 1
1
BCD du 1er chiffre invalide 0 1 1 1
1
1111 = 85
+
Ajout de 6 0110
= 1000 0101
34/37
Chapitre 02 : Arithmétique binaire
Opérartions arithmétiques des réels en virgule flottante

Opérartions arithmétiques en virgule flottante

Soit la représentation des nombres réels :


nombre = mantisse.2exposant
Soit deux nombres N1 = m1 .2e1 et N2 = m1 .2e2
Pour caculer l’addition et la soustraction il faut que e1 = e2
Si e1 6= e2 , on prend le petit nombre des deux puis on décale
sa mantisse à droite et incrémente son exposant.
On répéte jusqu’au obteneir le même exposant e1 = e2 = e
Addition : N1 + N2 = m1 .2e + m2 .2e = (m1 + m2 ).2e
Soustraction : N1 − N2 = m1 .2e − m2 .2e = (m1 − m2 ).2e

35/37
Chapitre 02 : Arithmétique binaire
Opérartions arithmétiques des réels en virgule flottante

Opérartions arithmétiques en virgule flottante

Multiplication :
N1 × N2 = m1 .2e1 × m2 .2e2 = (m1 × m2 ).2e1 +e2
Division : N1 /N2 = m1 .2e1 /(m2 .2e2 ) = (m1 /m2 ).2e1 −e2
Exemple : Addition (e=8 bits et m=8 bits ; soit n=16 bits).
N1 = (1, 0625)10 = 34 ∗ 2−5 = (0010 0010)C 2 ∗ 2−5
N2 = (1, 5625)10 = 100 ∗ 2−6 = (0110 0100)C 2 ∗ 2−6 = 50 ∗ 2−5

S = N1 + N2 = (0010 0010)C 2 ∗ 2−5 + (0110 0100)C 2 ∗ 2−6


= [(0010 0010)C 2 + (0011 0010)C 2 ] ∗ 2−5
= (0101 0100)C 2 ∗ 2−5 = 84 ∗ 2−5 = (2, 6250)10

36/37
Chapitre 02 : Arithmétique binaire
Opérartions arithmétiques des réels en virgule flottante

Opérartions arithmétiques en virgule flottante

Exemple : Multiplication (e=8 bits et m=8 bits ; soit n=16


bits).
N1 = (288)10 = 9 ∗ 25 = (0000 1001)C 2 ∗ 25
N2 = (0, 0391)10 = 10 ∗ 2−8 = (0000 1010)C 2 ∗ 2−8

P = N1 ∗ N2 = (0000 1001)C 2 ∗ 25 ∗ (0000 1010)C 2 ∗ 2−8


= (0101 1010)C 2 ∗ 2−3
= 90 ∗ 2−3 = (11, 25)10

37/37

Vous aimerez peut-être aussi