Complemento a 2 (Informatica)


To totally unlock this section you need to Log-in


Login

Il complemento a due, meglio conosciuto in inglese come two's complement, rappresenta il metodo più diffuso ed utilizzato per eseguire la rappresentazione del numero con segno di informatica.

La sua enorme diffusione è dovuta al fatto che i circuiti di addizione e sottrazione non devono prestare attenzione al segno del numero.

Con il complemento a due, il bit iniziale può avere valore positivo o negativo, da questo deriva che tutti i numeri che cominciano con un "1" sono numeri binari negativi, mentre quelli che iniziano con "0" sono numeri binari positivi.

Attraverso questo metodo è possibile avere un'unica rappresentazione dello zero e operare efficacemente addizioni o sottrazioni sempre avendo il primo bit che ci indicherà il relativo segno (in sostanza con un solo circuito, quello dell'addizione, sarà possibile eseguire anche la sottrazione).

Addentriamoci, quindi, nel vivo del concetto che stiamo analizzando. Un numero binario di n cifre può rappresentare, con questo metodo, i numeri compresi tra -2^(n-1) a 2^(n-1)-1, di modo che un binario di 8 cifre (8 bit) può rappresentare i numeri compresi tra -128 e +127.

NOTA: ricordiamoci che se usiamo, ad esempio, 8 bit, inclusivo di bit di segno, per rappresentare un numero, di fatto utilizzeremo

Supponiamo di voler convertire il numero 5, dobbiamo per prima cosa rappresentarlo in binario (in questo esempio supponiamo di avere a disposizione 8 bit). Tale rappresentazione del 5 verrà effettuato in questo modo: 0000 0101(5). La prima cifra è 0, per cui il numero è sicuramente positivo.

Se invertiamo i bit così che 0 diventa 1 e 1 diventa 0 la sequenza cambierà nel seguente modo 1111 1010. A questo punto abbiamo ottenuto il complemento a uno del numero 5, per ottenere il complemento a due sommiamo 1, ottenendo quindi:

1111 1010 + 0000 0001 = 1111 1011 (-5)

Il risultato ottenuto è un numero binario che rappresenta il numero negativo -5 secondo il complemento a due. Si noti che il primo bit è uguale a 1 evidenziando così che il numero è negativo.

Prendendo in considerazione la numerazione sopra esposta, se volessimo trovare il numero positivo dovremmo invertire i bit della rappresentazione del numero -5 ottenendo 0000 0100. Sommando 1 otteniamo:

0000 0100 + 0000 0001 = 0000 0101 (+5)

Download

Per maggiori informazioni sul complemento a 2 si possono scaricare le seguenti brevi slides dell'Università di Padova:
[wpfilebase tag="file" id="227"]