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.

images/chap2_008n.png

Le bit de poids fort représente le signe

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 rajouter 1. 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. Le complément à deux consiste à ajouter ...