è un sistema di codifica dei numeri interi relativi, in cui il bit più significativo dà indicazione del segno (0→+, 1→-), mentre i bit rimanenti vengono sottoposti a un’operazione di complementazione se rappresentano un valore negativo.
come interpretare il risultato
- se il MSB è 1 complemento
- decodifico i bit restanti usando il binario e considero il valore o positivo o negativo
| 3 bit | bin | complemento a 1 |
|---|---|---|
| 000 | 0 | 0 |
| 001 | 1 | 1 |
| 010 | 2 | 2 |
| 011 | 3 | 3 |
| 100 | 4 | -3 |
| 101 | 5 | -2 |
| 110 | 6 | -1 |
| 111 | 7 | -0 |
2-2=0 2-3=-1 3-1=2
v v v
2+(-2)=0 2+(-3)=-1 3+(-1)=2
010 + 010 + 011 +
101 = 100 = 110 =
111 = -0 110 = -1 001 = 1 > sbagliato
Questa rappresentazione ha un problema:
- se il risultato è negativo allora è corretto,
- se il risultato è positivo allora è decrementato di uno e va corretto, quindi serve un controllo ulteriore che impiega più potenza computazionale. L’addizione quindi non è efficiente perché bisogna verificare se il risultato va corretto.