Qu'est-ce que le calculateur de complément à deux ?
Le complément à deux est la méthode standard utilisée par les ordinateurs pour stocker les entiers signés. Ce calculateur convertit n'importe quel nombre décimal en sa représentation binaire en complément à deux, pour une largeur de bits au choix (4, 8, 16 ou 32 bits), et affiche à la fois la valeur non signée du motif binaire et la valeur signée que ces bits représentent.
Comment l'utiliser
Saisissez un nombre décimal — positif ou négatif — puis choisissez la largeur de bits. L'outil réduit le nombre modulo \(2^n\), produisant exactement le motif binaire qu'un processeur stockerait. Il vous indique également quelle valeur signée ce même motif décode, ce qui vous permet de vérifier les conversions dans les deux sens.
La formule expliquée
Pour un champ de n bits, la représentation non signée est $$u = \left(\left(x \bmod 2^n\right) + 2^n\right) \bmod 2^n.$$ Cette opération « enroule » les nombres négatifs : sur 8 bits, −5 devient \(256 - 5 = 251\), dont le binaire est \(11111011\). Pour décoder un motif et retrouver une valeur signée, examinez le bit de poids fort (MSB) : s'il vaut 1 (c'est-à-dire \(u \geq 2^{n-1}\)), la valeur est \(u - 2^n\) ; sinon, c'est simplement \(u\). Une autre façon équivalente de calculer l'opposé consiste à inverser tous les bits et à ajouter un : \(\sim x + 1\).
Exemple résolu
Convertissons −5 en complément à deux sur 8 bits. Étape 1 : \(2^8 = 256\). Étape 2 : $$u = \left(\left(-5 \bmod 256\right) + 256\right) \bmod 256 = 251.$$ Étape 3 : 251 en binaire s'écrit \(11111011\). Comme le MSB vaut 1, la valeur signée est \(251 - 256 = -5\), ce qui confirme la conversion.
FAQ
Que se passe-t-il si mon nombre dépasse la largeur de bits ? Il « déborde » (overflow) modulo \(2^n\), exactement comme le ferait le matériel. Par exemple, 300 sur 8 bits devient \(300 - 256 = 44\).
Pourquoi la valeur non signée diffère-t-elle de la valeur signée ? Les mêmes bits peuvent se lire de deux manières. En non signé, tous les bits sont considérés comme positifs ; en signé, le bit de poids fort représente un poids négatif.
Cet outil gère-t-il le 64 bits ? Il prend en charge les largeurs courantes jusqu'à 32 bits, afin de garder les résultats dans une plage de précision fiable.