Convertisseur complément à deux
Convertissez un entier négatif ou positif en ses bits de complément à deux sur 8, 16 ou 32 bits, ou un motif hexadécimal ou binaire en valeur signée.
Le plus petit registre signé qui contient -42 fait 7 bits.
Ce que ça représente
Où se situe-t-il ?
Un tiret signifie que la valeur ne tient pas sur cette largeur : un registre de 8 bits va de −128 à 127.
Toutes les unités
Cet entier dans tous les registres
Comprendre
Trois choses à savoir
-
Inverser et ajouter un
Pour changer le signe : inversez chaque bit, puis ajoutez 1. 5 s’écrit 0000 0101 ; −5, c’est 1111 1010 + 1 = 1111 1011.
-
Pourquoi pas un bit de signe
Les premières machines utilisaient un bit de signe ou le complément à un, et avaient deux zéros (+0 et −0). Le complément à deux n’a qu’un zéro et laisse le même additionneur traiter les nombres signés et non signés.
-
La plage est déséquilibrée
Un octet signé va de −128 à +127 : il y a un nombre négatif de plus. Changer le signe de −128 déborde et redonne −128.
Raccourcis
Conversions courantes : entier
Le contexte
À propos du complément à deux
Presque tous les processeurs stockent les entiers signés en complément à deux. Un nombre négatif −n est stocké comme 2bits − n : dans un octet, −1 vaut 255 (1111 1111) et −128 vaut 128 (1000 0000). Le bit de poids fort donne le signe.
L’astuce permet à l’addition de fonctionner sans cas particulier : ajouter 1 à 1111 1111 déborde en 0000 0000, soit exactement −1 + 1.