UTILS.
100 % dans le navigateur
🔢

Convertisseur en complément à deux

Convertissez des entiers signés vers/depuis le binaire et l'hex en complément à deux sur 4, 8, 16, 32 ou 64 bits, avec le complément à un et l'interprétation non signée.

Saisissez un nombre ou un motif de bits ci-dessus.

À propos de cet outil

Le Convertisseur en complément à deux encode un entier signé en sa représentation binaire et hexadécimale en complément à deux à la largeur de bits que vous choisissez (4, 8, 16, 32 ou 64 bits), et décode un motif binaire ou hex en la valeur signée qu'il représente. Il utilise BigInt partout, de sorte que les valeurs 64 bits sont traitées exactement, sans perte de précision.

Pour une largeur de N bits, la plage signée va de −2^(N−1) à 2^(N−1)−1. Pour encoder un décimal d : si d est non négatif, le motif est simplement d ; si d est négatif, le motif est 2^N + d (de façon équivalente, inverser tous les bits de |d| et ajouter 1). L'outil produit le binaire de N bits complété par des zéros, l'hex de N/4 chiffres, le complément à un (NON bit à bit), et l'interprétation non signée des mêmes bits, et il signale une erreur de dépassement lorsqu'une valeur n'entre pas dans la largeur sélectionnée.

Pour décoder, collez un motif binaire ou hex et l'outil lit son bit de poids fort : si le bit le plus significatif est à 1, la valeur est motif − 2^N (négative), sinon c'est le motif lui-même. Il affiche toujours les lectures signée et non signée côte à côte, ce qui est exactement l'ambiguïté que le complément à deux résout au niveau matériel. Tout le calcul est local à votre navigateur.

Foire aux questions

Quelle est la plage pour chaque largeur de bits ?
Une largeur de N bits représente des valeurs signées de −2^(N−1) à 2^(N−1)−1. Donc 8 bits couvre −128 à 127, 16 bits −32768 à 32767, et 32 bits environ ±2,1 milliards. Les valeurs hors plage déclenchent un avertissement de dépassement.
Comment un nombre négatif est-il encodé ?
Prenez la magnitude, inversez chaque bit (complément à un), et ajoutez 1. De façon équivalente, le motif égale 2^N plus le nombre négatif. Par exemple −1 sur 8 bits est 11111111, et −42 est 11010110.
Pourquoi afficher aussi la valeur non signée ?
Le même motif de bits a deux lectures : signée (complément à deux) et non signée. Afficher les deux rend clair que, par exemple, le motif 8 bits 11111111 vaut −1 en signé mais 255 en non signé — l'interprétation dépend de la façon dont le matériel le traite.
Peut-il gérer les valeurs 64 bits exactement ?
Oui. Le convertisseur utilise l'arithmétique BigInt à précision arbitraire, de sorte que les motifs 64 bits et leurs valeurs signées sont calculés exactement, sans l'arrondi que les nombres JavaScript ordinaires introduiraient au-delà de 2^53.

Plus d'outils