Représentation binaire d'un entier relatif

Introduction :

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

  • Il n'existe qu'une seule écriture du nombre zéro ;

  • Les opérations d’addition et de soustraction sont réalisées par le même circuit.

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