Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Arithmétique Binaire

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 4

Cours d’Informatique Industrielle Arithmétique Binaire

Arithmétique Binaire
I. Représentation des Nombres Entiers Signés
Comme nous l’avons vu précédemment les nombres entiers sont le plus souvent représentés à
l’aide codes binaires naturels et BCD. Le problème se pose lorsque l’on veut représenter les
nombres entiers signés.
1. Représentation en complément à 1
On obtient le complément à 1 d’un nombre binaire en effectuant un complément logique de
tous les bits du code. On utilise ce principe pour représenter les entiers signés négatifs : le MSB
est réservé au signe et la valeur est exprimée en complément à 1.
Si on dispose de 8 bits :
+2 = %00000010 -2 = %11111101
+1 = %00000001 -1 = %11111110
+0 = %00000000 -0 = %11111111
Avantage : sa simplicité
Inconvénient : il existe deux représentations de zéro.
Cette représentation est très rarement utilisée.
2. Représentation en complément à 2
On obtient le complément à 2 en ajoutant +1 au complément à 1. Comme précédemment, le
MSB est réservé au signe, le nombre négatif s’obtient en prenant le complément à 2 (signe
compris) du nombre positif opposé.
Pour 8 bits cela donne :
+2 = %00000010 -2 = %11111110
+1 = %00000001 -1 = %11111111
+0 = %00000000 -0 = %00000000
Avantages :
− Il n’y a qu’une seule représentation de zéro,
− L’addition et la soustraction sont simplifiées.
Inconvénient :
− Le code est plus difficile à obtenir,
− La discontinuité lors du passage par zéro (de -1 à 0, tous les bits changent d’état).
Cette représentation est très utilisée.

1
ISA/Mali-Génie Electrique Informatique Industrielle Semestre 1 (GEII/S1)
Cours d’Informatique Industrielle Arithmétique Binaire

II. Représentation des Nombres Réels


Lorsqu’on représente un nombre décimal en base 10, on admet implicitement que les nombres
après la virgule sont les multiples des puissances négatives de 10 (extension de la numération
de position).
27,25 = 2*101 + 7*100 + 2*10-1 + 5*10-2
On peut généraliser cette notation à n’importe quelle base B :
(N)B = an.Bn + an-1.Bn-1 +…+ a1.B1 + a0.B0 + a-1.B-1 + a-2.B-2 +…
Représentation en virgule fixe
Un nombre de n chiffres est partagé en deux parties : l’une correspond aux valeurs entières,
l’autre aux valeurs fractionnaires. La virgule n’est pas représentée mais se trouve fictivement
entre les deux zones entières et fractionnaires. La position de la virgule est fixée par l’utilisateur
en fonction de ses besoins (virgule fixe).
La décomposition d’un nombre est une extension de la numérotation de position précédemment
abordée :
N = an.an-1…a1.a0,a-1.a-2
Si on dispose de 8 bits et que l’on décide de coder les nombres réels signés (en complément à
2) avec une partie entière sur 6 bits et une partie fractionnaire sur 2 bits, on obtient :
Valeurs Décimale Valeurs Binaire
15.75 0 111,11
0.25 0 000,01
0 0 000,00
-0.25 1 111,11
-15.75 1 000,01
La virgule fixe permet de représenter tous les nombres de la plage avec une même précision,
égale au bit de poids le plus faible : 2-P (0.25 dans notre exemple). Mais ce mode ne permet pas
de manipuler des nombres très petits ou très grands : (2n-1) au maximum.
Les opérations de multiplication et de division décalent les virgules, ce qui complique
grandement la réalisation des circuits, sauf lorsque les opérandes sont compris dans
l’intervalle [1 ; 2[. C’est cet intervalle qui est exploité par les nombres à virgule flottante.
III. Addition et Soustraction des nombres entiers
1. Addition des nombres entiers non signés
Elle est parfaitement analogue à l’addition de deux nombres décimaux :
Exemple :
3 + 6 = %011 + %110 = % 1001
2
ISA/Mali-Génie Electrique Informatique Industrielle Semestre 1 (GEII/S1)
Cours d’Informatique Industrielle Arithmétique Binaire

2. Addition et soustraction des nombres entiers signés


Les nombres négatifs sont représentés en complément à 2. Le bit de signe est additionné comme
s’il s’agissait d’un bit de grandeur. Pour réaliser une soustraction, il suffit d’additionner un
nombre positif et un nombre négatif.
Remarque : l’utilisation des nombres signés en complément à 2 impose un même nombre de
bits pour les deux opérandes. L’addition de deux nombres en binaire naturel de n bits donne
directement un résultat sur n+1 bits.
Cas 1 : addition de 2 nombres positifs
+9 + 4 =+13
%01001 + %00100 = % 01101
Cas 2 : addition d’un nombre positif et d’un nombre négatif plus petit
+9 – 4 = +9 + (-4) = +5
%01001 + %11100 = %0 0101
Cas 3 : addition d’un nombre positif et d’un nombre négatif plus grand
+4 – 9 = +4 + (-9) = +(-5)
%00100 + %10111 = %11011
Cas 4 : addition de 2 nombres négatifs
-9 – 4 = +(-9) + (-4) = + (-13)
%10111 + %11100 = %10011
IV. Multiplication des nombres entiers
1. Multiplication des nombres entiers non signés
Le principe est le même qu’en décimal, sauf qu’on ne multiplie que des 0 ou des 1, ce qui
simplifie grandement des calculs.
9x13 = 117
(%1001)x(%1101) = %1110101
2. Multiplication des nombres entiers signés
On considère toujours le cas des nombres toujours le cas des nombres représentés en
complément à 2.
La multiplication de deux nombres de n bits donne un nombre sur 2n bits.
Le principe est de toujours effectuer la multiplication avec des nombres positifs.
Cas 1 : les deux nombres négatifs
On complémente à 2 les deux nombres et on les multiplie comme deux nombres positifs.
Le résultat obtenu est correct, puisqu’il doit être positif.
(-29)x(-29) = (+29)x(+29)
3
ISA/Mali-Génie Electrique Informatique Industrielle Semestre 1 (GEII/S1)
Cours d’Informatique Industrielle Arithmétique Binaire

-29 = %10011 => -(-29) = (+29) =% 011100 + 1 =% 011101


(% 011101)x(% 011101) = %01101001001
Cas 2 : un des deux nombres est négatif
On complémente le nombre négatif et on multiplie les deux nombres positifs. Le résultat devant
être négatif, il faut complémenter à 2 le résultat de l’opération précédente.
(-29)x(4) = (-116)
(+29) = %011101 ; (+4) = %000100
(%011101)x(%000100) = %01110100
On complémente à 2 le résultat :
%01110100 = %10001011 + 1 = %10001100

4
ISA/Mali-Génie Electrique Informatique Industrielle Semestre 1 (GEII/S1)

Vous aimerez peut-être aussi