Calcolatrice complemento a due

Questa è una calcolatrice del complemento a due. Codifica un intero con segno o legge hex/binario come con segno. −1 a 8 bit è 0xFF. −52 è 0xCC. Lo stesso byte 0xFF vale 255 senza segno.

Clicca un bit per invertirlo. Quello a sinistra (anello oro) è il bit di segno.

Clicca un valore per copiarlo

Riempi, inverti, aggiungi 1

Addizione / sottrazione in complemento a due (A e B in decimale con segno)

Esempi — clicca un campione

Lo stesso pattern a 4 bit in senza segno, segno-modulo, complemento a uno e complemento a due — clicca una riga per caricarlo

Binary Senza segno Segno-modulo Complemento a uno Two's
00000000
01015555
01117777
10008−0−7−8
101010−2−5−6
111115−7−0−1

Questa è una calcolatrice del complemento a due

Codifica un intero con segno in complemento a due, o legge un pattern hex/binario come con segno. Larghezze: Auto, 4, 8, 12, 16, 32 e 64. −1 a 8 bit è 0xFF; −52 è 0xCC; 20 è 0x14. Lettura senza segno degli stessi bit: 0xFF è 255. HEX, Binary, Decimal restano invariati. Non è la calcolatrice bitwise HEX né la calcolatrice HEX senza segno.

Come usarla

  1. Scegli Decimal / Hex / Binary e la larghezza. Il decimale scrive il complemento a due. Hex e Binary riempiono di zeri e poi leggono il valore con segno. Auto sceglie la larghezza minima che ci sta.
  2. La griglia è il pattern. Il bit a sinistra (anello oro) è il segno; cliccalo per invertirlo. Le schede mostrano hex, decimale con segno, senza segno, complemento a uno e la negazione inverti+1.
  3. Un decimale negativo: riempi la magnitudine, inverti, aggiungi 1. −52 a 8 bit: 0011 0100 → 1100 1011 → 1100 1100 (0xCC). I positivi non invertono.
  4. A e B sono decimali con segno alla stessa larghezza. A+B e A−B avvolgono modulo 2^N; overflow se la somma matematica non ci sta. Mostra esempio è −1 a 8 bit → 0xFF. Altri chip: −52, 20, 0xFF, 0x80 (−128) e 1010 a 4 bit (−6).
  5. La tabella a 4 bit confronta senza segno, segno-modulo, complemento a uno e complemento a due. Clicca una riga per caricare il pattern.

Note

Il pattern è TC = (2^N + X) mod 2^N. L’intervallo con segno a 8 bit è −128…127; a 4 bit −8…7. Hex/binario più corto della larghezza si riempie di zeri, senza sign-extend. Negare 0x80 a 8 bit resta 0x80: +128 non esiste. Correlati: IEEE 754, convertitore endian.

Dove usarla

  • Leggere un byte con segno in un dump: 0xFF come signed char è −1; unsigned è 255.
  • Verificare inverti-più-uno, o perché A−B è A più il complemento a due di B.

Domande

Perché −128 non si può negare a 8 bit?

L’intervallo è asimmetrico. Inverti 1000 0000 e aggiungi 1 e ottieni di nuovo 1000 0000. Il +128 matematico non ci sta.

0xFF è −1 o 255?

Dipende da come lo leggi. Questa pagina mostra il valore con segno in complemento a due e la lettura senza segno degli stessi bit.

Cos’è il complemento a uno qui?

Ogni bit del pattern corrente invertito, senza +1. Il complemento a due di un negativo inverte la magnitudine e aggiunge 1.