Il complemento a due è sicuramente il metodo più usato per rappresentare i numeri negativi in informatica, vedremo attraverso questa guida come eseguire appunto l’operazione di complemento a due, inizialmente potrà sembrare un’operazione un po’ complessa ma una volta capito il meccanismo vi accorgerete che non è poi così complicato.
Il motivo della sua enorme diffusione è data dal fatto che con questo metodo i circuiti che eseguono le operazioni di sottrazione e addizione non devono prestare attenzione al segno del numero, permettendo così di utilizzare tecnologie più semplici per effettuare i calcoli (in sostanza con un solo circuito, quello dell’addizione, sarà possibile eseguire anche la sottrazione).
Ma veniamo al dunque con questo metodo i numeri binari che iniziano con 1 rappresentano numeri binari negativi mentre i numeri che cominciano con 0 rappresentano numeri binari positivi. Con questo metodo quindi si possono rappresentare i numeri che vanno da -2^(n-1) a 2^(n-1)-1 dove n è il numero di bit a disposizione.
Leggi anche: Come convertire i numeri da decimale in binario (CLICCA QUI)
Vediamo ora come eseguire l’operazione vera e propria. Facciamo un esempio: supponiamo di voler convertire il numero 5 bene allora dobbiamo per prima cosa rappresentare il numero 5 in binario (in questo esempio supponiamo di avere a disposizione 8 bit) quindi il numero 5 verrà rappresentato in questo modo: 0000 0101
Ora per eseguire il complemento a due dobbiamo per prima cosa eseguire il complemento a uno del numero in questione (per chi volesse approfondire il complemento a uno può consultare la guida che ho scritto a riguardo) quindi il risultato sarà 1111 1010 e infine sommare uno (consultare la guida che ho scritto a proposito della somma in binario) il risultato finale sarà quindi 1111 1011 questa sequenza rappresenta quindi il numero -5 in complemento a due.
In realtà esiste un piccolo trucchetto per eseguire tale operazione più velocemente, in pratica riprendendo l’esempio di prima abbiamo che il numero 5 in binario su otto bit è: 0000 0101 A questo punto partendo da destra (bit meno significativo) fino a quando non incontriamo il primo bit che vale uno eseguiamo una copia bit a bit, una volta incontrato il primo 1 finiamo di copiare gli altri bit ricordandoci di eseguire l’operazione di negazione quindi 1111 1011.