Calculateur de complément à deux
Qu’est-ce que le complément à deux?
Le complément à deux est la manière standard dont les ordinateurs stockent les entiers signés — des nombres qui peuvent être positifs ou négatifs — en utilisant un nombre fixe de bits. Au lieu de réserver un symbole distinct pour le signe moins, les nombres négatifs sont codés de sorte que l’addition binaire ordinaire fonctionne directement, sans traitement particulier du signe. Presque tous les processeurs modernes représentent les entiers de cette façon.
Ce calculateur prend un entier décimal et une largeur en bits (8, 16 ou 32 bits) et affiche son motif en complément à deux à la fois en binaire et en hexadécimal.
Comment ça marche?
Pour une largeur choisie de bits, chaque valeur est stockée sous la forme d’un motif de bits non signé :
- Si le nombre est non négatif, son motif est simplement le binaire de , complété par des zéros initiaux jusqu’à bits.
- Si le nombre est négatif, son motif est le binaire de .
Comme est négatif dans le second cas, est une valeur positive inférieure à , donc elle tient toujours dans bits. Le bit de poids fort (le plus à gauche) finit par valoir pour tout nombre négatif et pour tout nombre non négatif — ce bit joue le rôle du signe.
Formule
Le résultat est ensuite écrit avec exactement chiffres binaires (ou chiffres hexadécimaux).
Exemples résolus
Exemple 1 : un nombre positif
Codez sur bits. Comme , le motif est simplement en binaire, complété à huit chiffres :
Exemple 2 : moins un
Codez sur bits. Comme , calculez :
Moins un est toujours une suite ininterrompue de uns, quelle que soit la largeur.
Exemple 3 : moins cinq
Codez sur bits. Calculez :
Tableau de référence (8 bits)
| Décimal | Binaire en complément à deux | Hex |
|---|---|---|
| 5 | 00000101 | 0x05 |
| 0 | 00000000 | 0x00 |
| -1 | 11111111 | 0xFF |
| -5 | 11111011 | 0xFB |
| 127 | 01111111 | 0x7F |
| -128 | 10000000 | 0x80 |
Notes
- Un entier signé sur bits couvre la plage de à ; bits couvrent de à ; bits couvrent environ milliards. Les valeurs en dehors de la plage choisie sont repliées modulo .
- Le bit initial est le signe : marque un nombre non négatif et marque un nombre négatif.
- Pour convertir un nombre ordinaire non négatif en binaire sans bit de signe, utilisez le convertisseur de décimal à binaire, ou le convertisseur de systèmes de numération général pour d’autres bases.
FAQ
Combien vaut -1 en complément à deux?
Quelle que soit la largeur, c’est une suite de uns : (0xFF) pour 8 bits, (0xFFFF) pour 16 bits, et ainsi de suite.
Comment obtenir le complément à deux d’un nombre négatif à la main?
Écrivez la valeur absolue du nombre en binaire, inversez chaque bit, puis ajoutez un. Pour sur 8 bits : vaut , l’inversion donne , et ajouter un donne — le même résultat que .
Pourquoi la largeur en bits est-elle importante?
La largeur détermine le nombre de bits qu’occupe le motif et donc la plage de nombres que vous pouvez stocker. La même valeur décimale produit une plus longue suite de zéros ou de uns initiaux à mesure que la largeur augmente.