Nombre de représentations signées
Les représentations de nombres signés sont utilisées pour résoudre le problème de la représentation des entiers négatifs en binaire. Le problème de la mémorisation du signe négatif (-) d'un nombre binaire est qu'il n'y a plus d'état à utiliser pour représenter l'affectation négative. Il n'est pas possible de se contenter d'utiliser "off" pour le moins et "on" pour le plus, car l'ordinateur n'aurait aucun moyen de savoir s'il s'agit d'un chiffre ou d'un signe.
Pour surmonter ce problème, les concepteurs d'ordinateurs ont inventé deux méthodes de stockage des nombres binaires négatifs : le signe et la magnitude et le complément de 2. Ces méthodes produisent des représentations alternatives pour les nombres signés.
Signe et magnitude
Signe et magnitude fonctionne en changeant le bit le plus significatif (MSB - le premier chiffre) en 1 si le nombre est négatif, et en réduisant le nombre d'un, par exemple :
0000 0010 (2)
deviendra...
1000 0010 (-2)
Cette méthode de stockage de nombres binaires négatifs ne fonctionne pas car :
- L'arithmétique binaire ne fonctionnera pas.
- Nous devons d'abord savoir quel mécanisme de stockage le compilateur d'un langage particulier utilise.
Le complément de 1
Le complément de 1 fonctionne en échangeant les 1 contre les 0 et les 0 contre les 1 par exemple :
0000 0010 (2)
deviendra...
1111 1101 (-2)
Tout comme la méthode du signe et de l'amplitude, il est facile de définir un nombre négatif car son bit le plus significatif est 1
Le complément de 2
Le complément de 2 est un moyen plus difficile de stocker les négatifs. Il y a trois étapes pour cela :
- Trouvez le nombre binaire positif (par exemple 8base 10 = 0000 1000base 2).
- Remplacez les 1 par des 0 et les 0 par des 1 (par exemple, 0000 1000base 2 devient 1111 0111base 2).
C'est ce qu'on appelle "retourner les bits", ou appliquer un NON logique à la représentation originale en base 2.
- Ajoutez 1 (par exemple 1111 0111base 2 + 1base 2 = 1111 1000base 2).
Cette méthode est appréciée parce que :
- C'est comme le signe et la magnitude ; un nombre négatif commence par un 1 et un nombre positif commence par un 0.
- L'arithmétique binaire fonctionnera.
- Il n'y a qu'une seule valeur pour 0 (0000 0000base 2).