Complemento a 2
Bene, passiamo adesso a considerare nel dettaglio che cosa si intende per metodo del complemento a 2.
Con metodo del complemento a 2 si intende quello che si opera in questo modo, cioè si prende un numero, e quel numero, sommato al numero di partenza deve dare come risultato un numero formato da soli 0.
Vediamo che cosa vuol dire nel concreto.
Con il completamento a 2, sostanzialmente, il bit più significativo del numero ha un peso negativo o positivo, cioè indica un numero negativo o positivo.
Da questo deriva che tutti i numeri complemetati a 2 che iniziano con 1 sono numeri binari negativi, mentre quelli che iniziano con 0 sono numeri binari positivi.
Ora, che cosa si fa?
Il calcolo dell'opposto in complemento 2 si ottiene in questo modo.
Se io ho 5 e voglio rappresentare il suo opposto nel sistema decimale, e voglio farlo nel binario, nel sistema binario.
Rappresentare l'opposto di un numero, in un sistema binario, si usa il complemento a 2, cioè cosa si fa?
Si invertono o negano i singoli bit, cioè si applica l'operazione logica NOT.
Questo vuol dire che gli 0 si trasformano in 1, gli 1 si trasformano in 0, e poi, alla fine, a quello che si ottiene si aggiunge 1.
Quindi, nel concreto, quello che accade è che, se io voglio rappresentare il numero 5 usando 8 bit e voglio rappresentarlo utilizzando il complemento a 2, quindi voglio ottenere, voglio scrivere, in binario, l’opposto di più 5, cioè meno cinque, il procedimento è il seguente, cioè si prende la rappresentazione binaria di 5 in 8 bit che è 0 0 0 0 1 0 1, si trasformano tutti gli 1 in 0 e tutti gli 0 in 1, qua
abbiamo sicuramente 0 0 0 0 0 1 0 1, un numero positivo perché il primo bit a sinistra è 0, quindi indica un numero positivo.
Se io inverto, cioè se nego tutti gli 0 e li faccio diventare 1, e nego tutti gli 1 e li faccio diventare 0, che cosa ottengo?
Ottengo 1 1 1 1 1 0 1 0.
A questo numero, se voglio ottenere il complemento a 2, devo sommare 1, altrimenti, se mi fermo a questo punto, ho ottenuto semplicemente il complemento a 1 del numero 5 in binario.
Quindi, se sommo 1, così come fatto là sotto, otterrò il complemento a 2, che varrà 1 1 1 1 1 0 1 1, e questo numero mi rappresenta il meno 5, sicuramente un numero negativo perché il primo bit a sinistra è un 1.
Quindi, il risultato è un numero binario con segno che rappresenta un numero negativo, meno 5 secondo il complemento a 2.
Il primo bit, infatti, ha valore 1, e quindi evidenzia che stiamo considerando un numero negativo, come dicevamo prima, come dicevo prima.
Quindi, il complemento a 2 di un numero negativo, prima abbiamo fatto il complemento a 2 di un numero positivo, se lo facessimo, restituisce il numero positivo pari al valore assoluto, cioè se da meno 5 vado a fare il complemento a 2 di meno 5, ottengo, utilizzando lo stesso metodo di prima, 0 0 0 0 0 1 0 0, cioè devo sommare poi, per fare il complemento a 2, 1, e quindi il risultato finale sarà dato da 0 0 0 0 0 1 0 0 più 0 0 0 0 0 0 0 1, e quindi il risultato sarà tutta una serie di 0 davanti, 1 0 1, cioè 5, quindi ritorno al valore di prima.
Quindi, vediamo un attimo cosa succede all’addizione.
Se io voglio fare l'addizione di due interi rappresentati con questo metodo, cioè quando rappresento un numero intero positivo, utilizzo il sistema binario nella sua semplicità.
Quando, invece, quando voglio rappresentare un sistema binario negativo, farò il complemento intero del numero con segno del corrispondente numero con segno positivo, e quello che accade è che, se vado a fare, per esempio, a sommare 15 e meno 5, vediamo cosa succede se lo faccio in binario con il metodo del complemento 2.
Bene, in questo caso dovrò fare 15 che è dato da un numero positivo, quindi il primo bit a sinistra sarà 0, ed è dato da 1 1 1 1 finali, e mentre, invece, meno 5 lo scrivo con il complemento a 2, e quindi sarà 1 1 1 1 1 0 1 1.
Vado a fare la somma, con gli eventuali riporti, e ciò che ottengo è che è ho 0 0 0 0 1 0 1 0, cioè 10, e 10 è effettivamente 10 nel sistema decimale, 10 effettivamente è il risultato di 15 meno 5.
Quindi, sono riuscito ad ottenere il risultato tranquillamente, senza dover fare nessun procedimento ulteriore.
Per quanto riguarda la sottrazione, ebbene, questo procedimento è poco utilizzato, cioè il complemento a 2 è poco utilizzato quando si deve costruire un circuito che faccia una sottrazione perché diventerebbe un po' complicato, ma comunque mantiene la stessa proprietà, cioè come per l'addizione, il vantaggio del complimento a 2 è quello di eliminare la necessità di esaminare i segni degli operandi per determinare quale operazione sia necessaria.
Facciamo un esempio.
Se io voglio sottrarre meno 5 a 15, che sarebbe come fare sostanzialmente 5 più 15, allora vediamo che cosa succede.
Succede che questo viene nascosto nel complemento a 2.
Infatti, se faccio 15 meno meno 5, così come è indicato lì, ho scritto il 15 nel sistema binario e ho scritto il meno 5 nel sistema binario con complemento a 2, e faccio questo questo risultato, sottraggo 1 da 1, ottengo 0 1 da 1, ottengo 0, e così via, quello che ottengo è 1 0 1 0 0, cioè 20, e quindi, anche nel caso della sottrazione, vale esattamente la stessa regola, cioè il sistema del complemento a 2, il metodo del complemento a 2 ci facilita nell'esecuzione dell'operazione.