Définition du complément à 2 :

Le complément à 2 (ou complément à deux) est un système de représentation des nombres entiers signés (positifs et négatifs) dans un système binaire, utilisé presque universellement dans les ordinateurs modernes.

Le complément à 1

Il faut connaitre le complément à 1 avant d’aborder le complément à 2

Le complément à 1 en binaire le cpl1 de 0 est 1 et réciproquement

Par exemple sur un quartet :

0b0000 + 0b1111 , la somme donne 0b1111
0b0101 + 0b1010 , la somme donne 0b1111

le nombre + son complément à 1 donne 0b1111

Le complément à 2

Donc nous allons en faire une méthode pour réaliser le notion de + et – avec du binaire (0/1)

La définition du complément à 2 est : cpl2= cpl1 + 1

Nous allons rester sur le quartet ! c’est important de d’imposer le format ! Ici 4 bits pour pour rester sur des exemples simples , et on pourra plus tard utiliser des mots de 64 bits et plus.

Non signé sur 4 bits

Un quartet en unsigned (non signé) , on peut compter de 0 à 15 (16 cas)

  • Binaire : Décimal
  • 0000 = 0
  • 0001 = 1
  • 0010 = 2
  • 0011 = 3
  • 0100 = 4
  • 0101 = 5
  • 0110 = 6
  • 0111 = 7
  • 1000 = 8
  • 1001 = 9
  • 1010 =10
  • 1011 =11
  • 1100 =12
  • 1101 =13
  • 1110 =14
  • 1111 =15

Nombres signés sur 4 bits

Maintenant on se rend compte que si on veut définir des nombres négatifs en disant que le bit de poids le plus fort sera le signe, on va pouvoir énumérer en positif de 0 à 7 (8 cas) et garder 8 cas pour les nombres négatifs.

on va utiliser le complément à 2 pour déterminer ces nombres négatifs.

on regarde le bit de signe si 0 c’est un nombre positif

Si 1 c’est un nombre négatif

Nous restons sur 4 bits pour faciliter la compréhension: 4 bits => -8 à +7

Ce qu’il faut bien comprendre c’est que ici on va travailler toujours sur 4 bits !

Binaire Décimal signé
0111 +7
0110 +6
0101 +5
0100 +4
0011 +3
0010 +2
0001 +1
0000 0
1111 -1
1110 -2
1101 -3
1100 -4
1011 -5
1010 -6
1001 -7
1000 -8

Exemple de 3 et -3 :

00011 donne 3 en décimal , sont complément à 1 1100 et le complément à 2 1101 donne 13 en décimal ! mais c’est -3 en codage complément à 2 sur 4 bits!

et ce qu’il y a de bien avec ce codage , c’est que nos calculs arithmétique sont valables! si on ne tient pas compte de la retenue !

R:   1111
      0011
    + 1101
   =  0000

Ce codage à fait ses preuves il est utilisé dans tous les systèmes numérique. Smart Phones, calculatrices , microprocesseurs ..etc…

En résumé :


Le complément à 2 est une astuce mathématique et binaire ingénieuse qui permet de représenter les nombres négatifs et de simplifier considérablement les opérations arithmétiques dans les processeurs, en éliminant le besoin de circuits dédiés à la soustraction. C’est la pierre angulaire de l’arithmétique entière en informatique.

Règle génèrale:

sur n bits ( -2n-1 à +(2n-1+1))

sur 4 bits on ira de -8 à +7

sur 8 bits on ira de -128 à +127

sur 32 bits on ira 2147483648 à 2147483647 (-2³¹ à 2³¹-1)

En hexadécimal :
  • minimum : 0x80000000
  • maximum : 0x7FFFFFFF

sur 64 bits on ira de −9223372036854775808 à +9223372036854775807

Et la on voit que déjà ça ne rigole plus ! on est plus dans le commun des mortels!

  • Ordre Nom français
  • 10⁹ milliard
  • 1012 billion
  • 1015 billiard
  • 1018 trillion
Minimum−9 223 372 036 854 775 808−9,223372036854775808 trillions
Maximum+9 223 372 036 854 775 807+9,223372036854775807 trillions

Au lieu de trillions on peut dire exa (1018 )

rappel :