Calcolo complemento a due

Questo calcolo complemento a due converte interi con segno in binario e viceversa. Esempio: −42 è 1101 0110 su 8 bit.

Fonte: Hennessy/Patterson, Computer Organization and Design, Kap. „Signed and Unsigned Numbers“ (Zweierkomplement). Aggiornato al: .

Intero con segno. Sono ammessi i separatori delle migliaia (1.024).
I miei strumentiI dati inseriti vengono salvati solo in questo browser.

Risultato

Risultato
-42 = 1101 0110 (complemento a due, 8 bit)
Tutte le rappresentazioni
GrandezzaValore
Valore decimale-42
Complemento a due1101 0110
Rappresentazione in complemento a uno1101 0101
Esadecimale0xD6
Intervallo di valori-128 … 127
Valore assoluto in binario0010 1010
Passaggi del calcolo
  • Valore assoluto |-42| in binario (8 bit): 0010 1010.
  • Invertire tutti i bit (complemento a uno): 1101 0101.
  • Sommare 1 (complemento a due): 1101 0110.
Il complemento a due è il modo usuale di memorizzare interi con segno. Ha un solo zero e copre da −2^(n−1) a 2^(n−1) − 1.

Come si calcola

Il complemento a due è la rappresentazione standard degli interi negativi nei computer. Il bit più significativo fa da segno, e somma e sottrazione usano lo stesso circuito, senza casi particolari.

Come si converte

Un numero non negativo si scrive in binario come di consueto e si completa con zeri a sinistra. Per un numero negativo: scrivere il valore assoluto in binario, invertire tutti i bit (complemento a uno) e sommare 1. All’inverso: se il bit più significativo è 1, il valore è u − 2ⁿ, dove u è la sequenza letta come intero senza segno. Con n bit si rappresentano da −2^(n−1) a 2^(n−1) − 1, cioè da -128 a 127 con 8 bit.

Esempio

−42 su 8 bit: il valore assoluto 42 è 0010 1010. Invertendo si ha 1101 0101 (complemento a uno), sommando 1 si ha 1101 0110, in esadecimale D6. Verifica: 1101 0110 letto senza segno è 214, e 214 − 256 = -42. La sequenza 1000 0000 vale -128, il più piccolo numero a 8 bit; +128 non entra più. Su 16 bit, −1 è FFFF in esadecimale. Letto come complemento a uno, 1101 0110 varrebbe -41.

Domande frequenti

Come si converte un numero negativo in complemento a due?

Si scrive il valore assoluto in binario, si invertono tutti i bit e si somma 1. Per −42 su 8 bit: 0010 1010 → 1101 0101 → 1101 0110.

Che differenza c’è tra complemento a uno e a due?

Il complemento a uno inverte solo i bit; il complemento a due somma poi 1. Così c’è un solo zero e l’aritmetica funziona senza regole speciali.

Che intervallo ha un byte in complemento a due?

Con 8 bit da -128 a 127, cioè 256 valori diversi.

Fonti e riferimenti normativi

Aggiornato al: · Principi editoriali

Strumenti correlati