Académique Documents
Professionnel Documents
Culture Documents
Correction
12 + 12 = 102
Vérifier que la somme de 0111 + 010 vaut bien 1001.
Dans un premier temps, faire le calcul en binaire puis vérifier le résultat en convertissant
les nombres en décimal.
1 1 Retenue En base 10
0 1 1 1 7
1 0 + 2
1 0 0 1 = 9
2
Les nombres signés
La première idée qui peut venir à l’esprit consiste à coder le signe d’un entier relatif sur un bit :
●
0 : entier positif
●
1 : entier négatif
Pour conserver une écriture proche de celle que nous connaissons déjà, on utilise le bit de poids
fort comme bit de signe (le bit le plus à gauche).
Bits de signe
1010 Bits de signe
0010
Ici : -1 Ici : +1
Valeur absolue de l’entier Valeur absolue de l’entier
Ici : 2 Ici : 2
En utilisant la méthode ci-dessus, écrire en binaire les entiers 10 10 et -1010 sur 8 bits
3
Les nombres signés
Compléter le tableau ci-dessous :
Binaire Valeur Binaire Valeur Est-ce que tous les entiers sont codés une seule fois ?
signé sur décimale signé sur décimale
4 bits 4 bits Non, la valeur 0 est codée deux fois. 0000 et 1000
0000 +0 1000 -0
0001 +1 1001 -1 Dans la représentation binaire signé sur 4 bits, quel
0010 +2 1010 -2 est le plus grand nombre pouvant être représenté ?
Généraliser pour un codage binaire signé sur n bits.
0011 +3 1011 -3
En représentation binaire signé sur 4 bits, la valeur
0100 +4 1100 -4 maximum est codé sur 3 bits.
0101 1101 Donc le nombre maximum pouvant être représenté est :
+5 -5 2³ – 1
0110 +6 1110 -6
Un nombre signé sur n bits. La valeur max est 2n-1-1
0111 +7 1111 -7
Dans la représentation binaire signé sur 4 bits, quel est le plus petit nombre pouvant être
représenté ? Généraliser pour un codage binaire signé sur n bits.
4
Les nombres signés
Sachant que les informaticiens ont décidé d’affecter au binaire signé sur n bit 100..00 la
valeur -2n-1.
Donner l’intervalle de valeurs pour un nombre signé sur 4 bits puis sur n bits.
Pour un nombre signé sur 4 bits, l’intervalle de valeur est : [-2 3,+23-1] soit [-8,7]
La soustraction est la somme d’un nombre positif et d’un nombre négatif. Calculer par addition
binaire binaire 3 – 3. Le résultat binaire signé est-il correct ?
1 1 Retenue En base 10
0 0 1 1 3
1 0 1 0 + -3
1 1 0 1 = -5 ???
5
Le complément à deux
La bonne idée
Au lieu de prendre les nombre négatifs en dessous, prenons-les au-dessus.
Comment? En poursuivant le compte avec des entiers naturels.
6 Source : http://villemin.gerard.free.fr/Wwwgvmm/Numerati/BINAIRE/Negatif.htm
Le complément à deux
Le principe
Non
Positif ? Oui
Opposé Binaire
(On abandonne le signe -)
Binaire
Complément
à2
7
Le complément à deux
Mise en application
On souhaite représenter + 21
Positif ? Oui
Binaire
8
Le complément à deux
Mise en application
On souhaite représenter - 21
Non
Positif ?
Opposé 21
(On abandonne le signe -)
On ajoute 1 + 12
9
Le complément à deux
Comment l’obtenir et vérification
Le codage de -21 en complément à 2 sur 6 bits
25=32 24=16 23=8 22=4 21= 2 20=1
+21 0 1 0 1 0 1
Inversion des bits 1 0 1 0 1 0
Ajouter 1 1
On obtient :
-21 en cpt à 2 -21 1 0 1 0 1 1
On vérifie que 21 – 21 = 0
25=32 24=16 23=8 22=4 21= 2 20=1
Retenue 1 1 1 1 1
21 0 1 0 1 0 1
+ -21 1 0 1 0 1 1
=
0 1 0 0 0 0 0 0
10
Le complément à deux
Comment le convertir en base 10 ?
Pour convertir un entier codé en binaire en complément à deux vers la base 10, il faut
considérer deux situations :
●
si le bit de signe vaut 0 : Alors le nombre est positif. Pour connaître sa représentation en
base 10, il suffit de convertir le nombre binaire vers la base 10.
●
●
si le bit de signe vaut 1 : Alors le nombre est négatif. Pour obtenir la valeur absolue du
nombre, il faut calculer le complément à 2 (c'est à dire inverser les bits puis ajouter 1) et
convertir le nombre binaire obtenu en base 10.
Exemple : Prenons le cas de l'entier binaire codé en complément à deux sur 6 bits : 101011
C’est un nombre négatif (bit de signe = 1)
25=32 24=16 23=8 22=4 21= 2 20=1
1 0 1 0 1 1
Inversion des bits 0 1 0 1 0 0
Ajouter 1 1
On obtient :
Le cpt à 2 0 1 0 1 0 1
11
Le complément à deux
Représenter -1210 en complément à deux sur 6 bits
25=32 24=16 23=8 22=4 21= 2 20=1
+12 0 0 1 1 0 0
Inversion des bits 1 1 0 0 1 1
Plus 1 0 0 0 0 1
-12 1 1 0 1 0 0
Calculer sur 8 bits : 20 + (-10) en utilisant la représentation en complément à deux sur 8 bits.
Le résultat est-il correct ?
.../...
12
Le complément à deux
Retenu 1 1 1 1
e
20 0 0 0 1 0 1 0 0
-10 1 1 1 1 0 1 1 0
=10 1 0 0 0 0 1 0 1 0
1010
Le résultat est correct.
On a décidé que 1000 00002 = -28-1. Quel est le plus petit entier négatif que l’on peut
représenter sur 8 bits en complément à 2 ?
13
Le complément à deux
Quel est le plus grand entier positif que l’on peut représenter sur 8 bits en complément en
complément à 2 ?
Comme pour les nombres signés, le bit de poids fort est réservé n’est pas utilisé
pour le nombre positif. On code donc sur 7 bits les nombres positifs.
Généralisons. Quelles sont les bornes inférieure et supérieur du domaine de représentation des
entiers relatifs en complément à deux sur n bits ?
14
Dépassement de capacité
Lorsque deux nombres binaires sont additionnés et qu’il n’y a pas assez de bits pour
afficher le résultat de la somme on dit qu’il y a dépassement de capacité ou overflow.
1. Calculer 125 + 58 en binaire sur 8 bits en complément à deux puis convertir de binaire à
décimal pour vérifier le résultat.
Retenu 1 1 1 1
12510 → 0111 1101cplt2 e
5810 → 0011 1010cplt2 125 0 1 1 1 1 1 0 1
58 0 0 1 1 1 0 1 0
=183 0 1 0 1 1 0 1 1 1
Nous avons vu qu’en complément à deux la plus grande valeur possible sur 8 bits est
27 – 1 soit 127. Or le résultat de l’opération 125+58=183 > 127.
15
Dépassement de capacité
16
Bilan
Nombre signé
La première idée qui peut venir à l’esprit consiste à coder le signe d’un entier relatif sur un bit :
●
0 : entier positif
●
1 : entier négatif
Pour conserver une écriture proche de celle que nous connaissons déjà, on utilise le bit de poids
fort comme bit de signe (le bit le plus à gauche).
Bits de signe
1010
Ici : -1
Valeur absolue de l’entier
Ici : 2
[ -2n-1 ; 2n-1-1 ]
17
Bilan
Le complément à deux
Comme pour les nombres signés le bits de poids fort (le plus à gauche) indique le signe :
●
0 : entier positif
●
1 : entier négatif
On l’appelle le complément à 2 parce que pour obtenir l'opposé d'un nombre, comme 1101, il
faut :
inverser chaque bit (c'est ce qu'on appelle le complément à 1), ce qui donne 0010,
puis d'ajouter 1, ce qui fait le complément à 2 => 0011
[ -2n-1 ; 2n-1-1 ]
18