Un entier relatif s’écrit en base 2 avec une chaîne binaire d’une longueur finie à \(n\) bits, définie à l'avance.
Les longueurs courantes des entiers signés sont à 8 bits, 16 bits, 32 bits ou 64 bits.
Exemples 1 : 00000001, 0100000100000001, etc.
Soit N un entier relatif dont la représentation sur n bits est N = bn-1bn-2...b1b0.
Il existe différentes façons de représenter un nombre relatif. Cela dépend du fabriquant de la machine.
Convention de la valeur signée
Soit le nombre binaire signé : N = bn-1bn-2...b1b0
Dans la convention de la valeur signée,
-
le bit de poids fort bn-1 (c’est-à-dire le bit le plus à gauche) est le bit de signe. Si sa valeur est 0, alors le nombre codé est positif. Si sa valeur est 1, alors le nombre codé est négatif.
- les autres bits bn-2...b1b0 codent la valeur absolue du nombre.
Exemples 2 :
La représentation de +5110 sur 8 bits est : 0011 00112
La représentation de -5110 sur 8 bits est : 1011 00112
Faites-vous plaisir 1 :
Donner la représentation binaire de +3710 sur 8 bits selon cette convention.
Donner la représentation binaire de -3710 sur 8 bits
Remarque : Inconvénients de ce modèle
-
Zéro possède deux représentations possibles :
- un zéro positif : +010 = 0000 00002, sur huit bits ;
- un zéro négatif : -010 = 1000 00002, sur huit bits.
- Il faut deux circuits différents pour effectuer les opérations d'addition et de soustraction !
- Dans la convention de la valeur signée, il est possible de représenter, sur n bits, les nombres compris entre -(2n-1-1) et 2n-1-1.
Convertir un entier relatif selon la convention du complément à 2
1. Convention du complément à 2n (plus simplement complément à 2)
-
Le complément à 1 ou complément restreint d’un nombre binaire N = bn-1bn-2...b1b0 s’obtient en « inversant » la valeur de chacun des bits de ce nombre.
Exemple 3 : Sur 8 bits, le complément à 1 de 1001 10012 est 0110 01102
- Le complément à 2 ou complément vrai d’un nombre binaire N = bn-1bn-2...b1b0 s’obtient en ajoutant la valeur +1 au complément à 1 de ce nombre.
N 1001 10012
Complément à 1 : 0110 01102
+ 1
Complément à 2 : 0110 01112
Faites-vous plaisir 2 :
Donner le complément à 2 du nombre 1110 10002.
2. Convertir un entier relatif selon la convention du complément à 2
Dans cette convention, le nombre de bit, n, est fixé à l'avance. Par conséquent, l'écriture d’un nombre négatif dépend de la longueur choisie !
Règle :
Dans la chaîne N = bn-1bn-2...b1b0, le bit de poids fort, bn-1, est interprété comme le bit de signe :
-
si bn-1 = 0, alors la chaîne binaire N représente un entier positif et sa valeur en base 10 est identique à la représentation binaire naturelle.
-
si bn-1 = 1, alors la chaîne binaire N représente un nombre négatif dont la valeur absolue en base 10 est celle du nombre positif associé obtenu en complémentant à 2 la chaîne bn-1bn-2...b1b0
2.1. Passer de la base 2 à la base 10
Méthode :
Dans la convention du complément à 2, convertir en base 10 les nombres 0010 01012 et 1010 01012
1. Conversion de \(0010\) \(0101_{2}\)
La chaîne 0010 01012 code un nombre positif car son bit de poids fort est 0 :
Ainsi, 0010 01012 = 20 + 22 + 25 = 3710
2. Conversion de 1010 01012
La chaîne 1010 01012 code un nombre négatif car son bit de poids fort est 1 :
N 1010 01012
Complément à 1 : 0101 10102
+ 1
Complément à 2 : 0101 10112
Il vient donc 0101 10112 = 20 + 21 + 23 + 24 + 26 = 91
Conclusion : 1010 01012 = -9110
Faites-vous plaisir 3 :
À l'aide de la convention du complément à 2, sur huit bits, convertir en base 10 le nombre 0011 00112.
Faites-vous plaisir 4 :
Même question pour 1011 00112.
Faites-vous plaisir 5 :
Même question pour 1111 11102.
2.2.Passer de la base 10 à la base 2
Méthode :
Dans la convention du complément à 2, sur huit bits, convertir en base 2 le nombre -3710.
+37 0010 01012
Complément à 1 : 1101 10102
+ 1
Complément à 2 : 1101 10112
Conclusion :
-3710 = 1101 10112 dans la convention du complément à 2.
Une autre méthode :
28 - 37 = 219 et 219 = 1101 10112
D'où -3710 = 1101 10112
Faites-vous plaisir 6 :
À l'aide de la convention du complément à 2, sur huit bits, donner l'écriture binaire du nombre -5110.
Remarque 1 : L’intervalle des nombres représentables sur n bits en complément à 2 est \(\left[-2^{n-1}\ ;\ 2^{n-1}-1\right]\).
Remarque 2 : Avantages de la convention du complément à 2
Somme et produit de deux nombres entiers
Somme (et différence)
Méthode :
Sur huit bits, effectuer en base 2 la somme : 3710 + 1010
37 → 0010 01012
10 → 0000 10102
37 + 10 → 0010 11112
Méthode :
Sur huit bits, effectuer en base 2 la différence : 4110 - 2310
On remplace cette différence par une addition dont les termes sont l’équivalent binaire de \(41\) et le complément à 2 de \(23\).
4110 = 0010 10012 et le complément à 2 de 23 est 1110 10012.
Ainsi,
41 → 0010 10012
-23 → + 1110 10012
41 - 23 → 10001 00102
Le résultat de cette addition est à 9 bits (alors que notre machine est à 8 bits) !
Ce bit supplémentaire est mémorisé dans un registre comme étant la retenue (bit de Carry).
Et le résultat de l'opération est : 0001 00102 ; soit 18.
Faites-vous plaisir 7 :
Sur huit bits, effectuer en base 2 la différence : 810 -310
Faites-vous plaisir 8 :
Sur huit bits, effectuer en base 2 la somme : -710 - 510
Faites-vous plaisir 9 :
Sur huit bits, effectuer en base 2 la différence : 5810 - 4910
Faites-vous plaisir 10 :
Sur huit bits, effectuer en base 2 la somme : 12510 + 410