UTILS.
100% nel browser
🔢

Convertitore complemento a due

Converti interi con segno da/verso binario ed esadecimale in complemento a due a 4, 8, 16, 32 o 64 bit, con complemento a uno e interpretazione senza segno.

Inserisci un numero o un pattern di bit qui sopra.

Informazioni su questo strumento

Il Convertitore complemento a due codifica un intero con segno nella sua rappresentazione binaria ed esadecimale in complemento a due alla larghezza di bit scelta (4, 8, 16, 32 o 64 bit), e decodifica un pattern binario o esadecimale riportandolo al valore con segno che rappresenta. Utilizza BigInt ovunque, quindi i valori a 64 bit sono gestiti esattamente senza perdita di precisione.

Per una larghezza di N bit l'intervallo con segno è da −2^(N−1) a 2^(N−1)−1. Per codificare un decimale d: se d è non negativo il pattern è semplicemente d; se d è negativo il pattern è 2^N + d (equivalentemente, inverti tutti i bit di |d| e aggiungi 1). Lo strumento produce il binario a N bit con zeri di riempimento, l'esadecimale a N/4 cifre, il complemento a uno (NOT bit a bit), e l'interpretazione senza segno degli stessi bit, e segnala un errore di overflow quando un valore non entra nella larghezza selezionata.

Per decodificare, incolla un pattern binario o esadecimale e lo strumento legge il suo bit più alto: se il bit più significativo è impostato il valore è pattern − 2^N (negativo), altrimenti è il pattern stesso. Mostra sempre affiancate sia la lettura con segno sia quella senza segno, che è esattamente l'ambiguità che il complemento a due risolve a livello hardware. Tutti i calcoli sono locali al tuo browser.

Domande frequenti

Qual è l'intervallo per ciascuna larghezza di bit?
Una larghezza di N bit rappresenta valori con segno da −2^(N−1) a 2^(N−1)−1. Quindi a 8 bit va da −128 a 127, a 16 bit da −32768 a 32767, e a 32 bit circa ±2.1 miliardi. I valori fuori dall'intervallo attivano un avviso di overflow.
Come viene codificato un numero negativo?
Prendi il valore assoluto, inverti ogni bit (complemento a uno), e aggiungi 1. Equivalentemente il pattern è pari a 2^N più il numero negativo. Per esempio −1 a 8 bit è 11111111, e −42 è 11010110.
Perché mostrare anche il valore senza segno?
Lo stesso pattern di bit ha due letture: con segno (complemento a due) e senza segno. Mostrarle entrambe chiarisce che, per esempio, il pattern a 8 bit 11111111 è −1 con segno ma 255 senza segno — l'interpretazione dipende da come l'hardware lo tratta.
Può gestire esattamente valori a 64 bit?
Sì. Il convertitore usa l'aritmetica a precisione arbitraria BigInt, quindi i pattern a 64 bit e i loro valori con segno sono calcolati esattamente senza l'arrotondamento che i normali numeri JavaScript introdurrebbero oltre 2^53.

Altri strumenti