Sommaire

Pour aller plus loin

1. Les nombres négatifs

Un nombre signé par exemple sur 8 bits, contient un bit réservé pour le signe. C’est en tout cas ainsi qu’on vous le présente pour plus de compréhension. Généralement c’est le bit de poids fort, le plus à gauche, qui sert pour le signe : à 0 le nombre est positif, à 1 il est négatif.

Par exemple -9(10) devrait être représenté par 10001001(2). Cette représentation pratique pour le lecteur ne l’est cependant absolument pas pour l’ordinateur. Additionnez -9 et 30, vous obtenez 21.

En binaire, 30 équivaut à 00011110. Le binaire s’additionne comme le décimal : 1+1=10 donc retenue de 1 et ainsi de suite :

 00011110 (30) 
+10001001 (-9) 
=10100111 (-39)

Il y a un problème ! Vous devriez obtenir 21 soit 00010101 ! C’est qu’en réalité un nombre négatif n’est pas représenté comme ceci. L’ordinateur "ruse" avec les manipulations binaires. L’astuce consiste à prendre le complément à un de la valeur binaire en valeur absolue (-9 => 9) et de lui ajouter un (on obtient au final un complément à deux). Le complément à un consiste à remplacer tous les zéros (0) par des un (1) et tous les 1 par des 0.

 11111111 (complément à un) 
 00001001 (9) 
=11110110 (tout est inversé)  ...