è un sistema di codifica dei numeri interi relativi, in cui il bit più significativo è associato a , dove n è il numero di bit.

3 bitbincomplemento a 2
00000
00111
01022
01133
1004-4 (oppure non viene considerato, è una scelta di chi costruisce l’ALU)
1015-3
1106-2
1117-1

Si osserva che per rendere un numero negativo bisogna complementarlo e aggiungere 1, così si può trasformare A-B in A+(-B), trattandola come un’addizione.

L’intervallo di numeri rappresentabili va da -4 a 0 per 3 bit, e da per bit.

Esempio:
-2^2 2^1 2^0
1    0   1
  • L’overflow si verifica se gli operandi sono concordi ma il segno del risultato dell’addizione è diverso da quello del risultato effettivo.

N.B.: L’overflow NON si verifica se c’è un riporto uscente, al contrario del binario, ma indica semplicemente che il risultato è errato.

2-2 = 0 -> 2+(-2) = 0

[1] 010   Il riporto uscente non da problemi di overflow come nel binario
    110
    000

2-3=-1

010
101
111


6 + 7                   

0110 +
0111 =
1101 = -3 > sbagliato


7 = 0111 -> complemento 1000 -> +1 1001