Les nombres négatifs possèdent une représentation binaire spécifique afin de les distinguer des nombres positifs.

En fait, les nombres binaires négatifs sont appelés nombres signés car ils possèdent une longueur fixe et à leur extrême gauche un bit égal à 1.

1000 1001 // est égal à -9
0000 1001 // est égal à +9

En pratique, cette représentation n'est guère utilisable puisque l'ordinateur n'est pas capable de gérer correctement les opérations arithmétiques dans ces conditions.

   0000 1110 // est égal à 14
+ 1000 1001 // est égal à -9
   1001 0111 // est égal à -23

   0000 0101 // devrait être égal à 5

Devant ce dysfonctionnement patent, il est nécessaire de représenter différemment les nombres binaires négatifs.

0000 1001 // est égal à 9

1111 1111 // complément à 1
0000 1001
1111 0110
0000 0001 // ajout de 1
1111 0111 // est égal à -9

1111 0111
0000 1001 // ajout de 9
0000 0000 //est bien égal à 0

En premier lieu, le nombre est complémenté à 1 puis la valeur binaire 1 est ajoutée pour donner finalement une représentation binaire exploitable du nombre négatif correspondant.

   0000 1110 // est égal à 14
+ 1111 0111 // est égal à -9
   0000 0101 // est égal à 5
Représentation des nombres binaires négatifs
Nombre négatif
Code binaire Nombre décimal
1111 1111 -1
1111 1110 -2
1111 1101 -3
1111 1100 -4
1111 1011 -5
1111 1010 -6
1111 1001 -7
1111 1000 -8
1111 0111 -9
1111 0110 -10
1111 0101 -11
1111 0100 -12
1111 0011 -13
1111 0010 -14
1111 0001 -15
1111 0000 -16