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.
Représentation des nombres binaires négatifs0000 1110 // est égal à 14 + 1111 0111 // est égal à -9 0000 0101 // est égal à 5
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 |