L’idée de base !
On cherche une représentation binaire des entiers négatifs pour que l’addition de deux nombres entiers relatifs fonctionne.
Si on ajoute un nombre avec celui obtenu en échangeant les 1 et les 0, on obtient 1111 1111. Ce n’est pas zéro mais presque …
Un exemple
6 s’écrit en binaire sur un octet : 0000 0110.
Si on échange les 0 et les 1, on obtient : 1111 1001.
Si on ajoute les deux nombres, on obtient : 1111 1111.
Si on ajoute 1 à ce nombre, on obtient (1) 0000 0000.
En négligeant le dépassement, on obtient 0.
L’opposé de 6 est donc 1111 1001 +1 = 1111 1010.
Ce nombre s’appelle le complément à deux.
Une méthode plus rapide
On garde tous les 0 de droite jusqu’au premier 1, ainsi que ce 1.
Pour le reste, on échange tous les 1 et tous les 0.
Exemples :
Le nombre 24 s’écrit : 0001 1000.
Son opposé -24 s’écrit : 1110 1000.
~
~
~
Le nombre 36 s’écrit : 0010 0100.
Son opposé -36 s’écrit : 1101 1100.