Qu'est-ce qu'un calculateur de complément à 2 ?
Un calculateur de complément à 2 convertit les nombres entre les bases décimale, binaire et hexadécimale, tout en montrant comment les valeurs négatives sont représentées à l'intérieur des ordinateurs. Le complément à 2 est la méthode standard utilisée par la quasi-totalité des processeurs modernes pour stocker les entiers signés ; le maîtriser est donc indispensable aux développeurs, aux étudiants en électronique et à toute personne travaillant avec la logique numérique. Cet outil vous permet de saisir un nombre dans n'importe quelle base, de choisir une largeur de bits (8, 16 ou 32 bits) et de voir aussitôt la représentation en complément à 2 ainsi que sa valeur décimale.
Comment utiliser le calculateur
- Saisissez votre nombre dans le champ prévu : il accepte le décimal, le binaire ou l'hexadécimal.
- Sélectionnez la base de votre saisie si nécessaire.
- Choisissez la largeur de bits : 8, 16 ou 32 bits.
- Lisez les résultats : la valeur binaire, hexadécimale et décimale signée s'affichent automatiquement.
La largeur de bits est déterminante, car elle fixe la plage de valeurs pouvant être stockées. Par exemple, un entier signé sur 8 bits contient des valeurs de -128 à 127, tandis qu'une valeur sur 16 bits s'étend de -32 768 à 32 767.
La formule expliquée
Pour trouver le complément à 2 d'un nombre binaire, suivez deux étapes :
- Inversez chaque bit (transformez chaque 0 en 1 et chaque 1 en 0). C'est le complément à 1.
- Ajoutez 1 au résultat.
Le bit le plus à gauche joue le rôle de bit de signe : 0 indique un nombre positif, 1 un nombre négatif. Pour convertir un décimal négatif en complément à 2, la formule est suivante :
$$\text{Twos Complement} = \left(\sim \text{Number}_{\,2}\right) + 1 \pmod{2^{\text{Bit Width}}}$$où n correspond à la largeur de bits.
Exemple détaillé
Convertissons -5 en complément à 2 sur 8 bits :
- Partons de +5 en binaire :
0000 0101. - Inversons les bits :
1111 1010. - Ajoutons 1 :
1111 1011.
Ainsi, -5 est stocké sous la forme 1111 1011, ce qui équivaut à FB en hexadécimal. Vérification : \(251 - 256 = -5\) (la valeur non signée moins 256).
Plages d'entiers signés par largeur de bit
Le complément à deux est la façon standard dont les ordinateurs représentent les entiers signés. Pour une largeur de bit donnée \(n\), un bit agit comme bit de signe, donc la plage d'entiers signés représentable est \(-2^{n-1}\) à \(2^{n-1}-1\), tandis qu'une interprétation non signée des mêmes bits couvre \(0\) à \(2^{n}-1\). Tous les calculs s'enroulent modulo \(2^{n}\).
| Largeur de bit \(n\) | Minimum signé \(-2^{n-1}\) | Maximum signé \(2^{n-1}-1\) | Maximum non signé \(2^{n}-1\) | Modulus \(2^{n}\) |
|---|---|---|---|---|
| 8 | -128 | 127 | 255 | 256 |
| 16 | -32 768 | 32 767 | 65 535 | 65 536 |
| 32 | -2 147 483 648 | 2 147 483 647 | 4 294 967 295 | 4 294 967 296 |
| 64 | -9 223 372 036 854 775 808 | 9 223 372 036 854 775 807 | 18 446 744 073 709 551 615 | 18 446 744 073 709 551 616 |
Par exemple, le complément à deux du nombre décimal 5 en format 8 bits est 251 lorsqu'il est lu comme un octet non signé, ce qui représente \(-5\) comme valeur signée.
Référence décimal–binaire–hexadécimal pour les valeurs 8 bits courantes
Le tableau suivant mappe les valeurs décimales signées représentatives à leurs formes binaires et hexadécimales en complément à deux sur 8 bits. Les nombres négatifs ont le bit le plus significatif défini à 1. Pour négater une valeur, inversez tous les 8 bits et ajoutez 1.
| Décimal signé | Binaire 8 bits | Hex | Valeur non signée |
|---|---|---|---|
| -128 | 1000 0000 | 0x80 | 128 |
| -64 | 1100 0000 | 0xC0 | 192 |
| -5 | 1111 1011 | 0xFB | 251 |
| -1 | 1111 1111 | 0xFF | 255 |
| 0 | 0000 0000 | 0x00 | 0 |
| 1 | 0000 0001 | 0x01 | 1 |
| 5 | 0000 0101 | 0x05 | 5 |
| 64 | 0100 0000 | 0x40 | 64 |
| 127 | 0111 1111 | 0x7F | 127 |
Pour vérifier une forme binaire indépendamment, vous pouvez convertir le motif 8 bits 11111011 au format décimal, qui est égal à 251 comme octet non signé (interprété comme \(-5\) signé).
Termes clés & Définitions
- Largeur de bit
- Le nombre de chiffres binaires utilisés pour stocker un entier (généralement 8, 16, 32 ou 64). Elle fixe le modulus \(2^{n}\) et donc la plage des valeurs représentables.
- Bit de signe
- Le bit unique qui indique si un nombre signé est négatif (1) ou non négatif (0). En complément à deux, c'est le bit d'ordre le plus élevé.
- Bit le plus significatif (BMS)
- Le bit le plus à gauche et de plus haute valeur dans un nombre binaire. Dans une valeur signée en complément à deux, le BMS fait office de bit de signe.
- Complément à un
- L'inversion au niveau des bits d'un nombre — chaque 0 devient 1 et chaque 1 devient 0 (\(\overline{B}\)). C'est l'étape intermédiaire avant l'ajout de 1 pour former le complément à deux.
- Complément à deux
- L'encodage dominant des entiers signés : négater une valeur en inversant tous les bits et en ajoutant 1, c.-à-d. \(\overline{B}+1 \pmod{2^{n}}\). Il donne une représentation unique du zéro et permet au même matériel d'additionner les nombres signés et non signés.
- Débordement / enroulement
- Ce qui se passe quand un résultat dépasse la plage représentable pour la largeur de bit ; la valeur s'enroule modulo \(2^{n}\). Par exemple, ajouter 1 au maximum 8 bits 127 s'enroule à -128.
- Entier signé vs non signé
- Un entier signé peut représenter les négatifs en utilisant le complément à deux (plage \(-2^{n-1}\) à \(2^{n-1}-1\)) ; un entier non signé traite chaque motif de bits comme non négatif (plage \(0\) à \(2^{n}-1\)). Les bits sont identiques — seule l'interprétation diffère.
Questions fréquentes
Pourquoi les ordinateurs utilisent-ils le complément à 2 ? Il permet d'effectuer l'addition et la soustraction avec les mêmes circuits, et il n'existe qu'une seule représentation du zéro, contrairement au signe-magnitude ou au complément à 1.
Que se passe-t-il si mon nombre dépasse la largeur de bits ? La valeur déborde et « boucle » (overflow), produisant un résultat inattendu. Choisissez une largeur de bits plus grande pour éviter ce phénomène.
Comment revenir à un décimal classique ? Si le bit de signe vaut 1, reprenez le complément à 2 puis ajoutez un signe négatif ; s'il vaut 0, lisez le nombre comme un binaire ordinaire.