Il complemento a 1 e a 2 è un metodo utilizzato nei computer per rappresentare i numeri negativi in binario.
Poiché il computer lavora solo con zeri e uni, serve un modo per distinguere i numeri positivi da quelli negativi. Esistono tre modi principali per rappresentarli:
- Modulo e segno
- Complemento a 1
- Complemento a 2
Rappresentazione in Modulo e Segno
Nel metodo del modulo e segno, il bit più a sinistra (MSB) indica il segno del numero:
0= numero positivo1= numero negativo
I restanti bit rappresentano il valore assoluto (cioè il modulo) del numero.
Esempio con 4 bit:
0101= +51101= -5
Limite: questo metodo ha due rappresentazioni per lo zero: 0000 e 1000.
Inoltre, le operazioni di somma e sottrazione risultano più complesse, motivo per cui nei computer moderni si preferisce il complemento a 2.
Complemento a 1
Il complemento a 1 si ottiene invertendo tutti i bit del numero binario:
- gli 0 diventano 1
- i 1 diventano 0
Esempio:
Numero binario: 0101 (che vale 5 in decimale)
Complemento a 1 → 1010
Questa operazione rappresenta il “negativo” del numero binario, ma presenta un problema: esistono due rappresentazioni dello zero (0000 e 1111). Per questo motivo si preferisce usare il complemento a 2.
Complemento a 2
Il complemento a 2 è il metodo più usato dai computer per gestire i numeri negativi.
Per ottenerlo si procede in due passaggi:
- Si calcola il complemento a 1 del numero.
- Si aggiunge 1 al risultato ottenuto.
Esempio:
Numero binario: 0101 (5 in decimale)
- Complemento a 1 →
1010 - Aggiungo 1 →
1011
1010+
1
-----
1011
Il numero 1011 rappresenta quindi -5 in complemento a 2 (con 4 bit).
Perché si usa il complemento a 2
- Permette di eseguire addizioni e sottrazioni con la stessa logica dei numeri positivi.
- Elimina il problema del doppio zero.
Esempio pratico completo
Supponiamo di avere un registro a 4 bit:
| Numero decimale | Binario | Complemento a 1 | Complemento a 2 |
| +5 | 0101 | 1010 | 1011 |
| +3 | 0011 | 1100 | 1101 |
| -5 | ——————- | 1010 | 1011 |
| -3 | ——————- | 1100 | 1101 |
Come si vede, il complemento a 2 rappresenta i numeri negativi in modo coerente e semplice da elaborare.
Conclusione
- Modulo e segno: indica il segno con il primo bit, ma ha due zeri.
- Complemento a 1: inverte i bit, ma ha ancora due zeri.
- Complemento a 2: inverte i bit e aggiunge 1 → è il metodo più usato e preciso.
Il complemento a 2 è oggi lo standard nei computer per rappresentare i numeri negativi in binario.