Complemento a due
Il complemento a due è una delle possibili rappresentazioni dei numeri con segno in informatica (è la rappresentazione maggiormente utilizzata nei calcolatori). A differenza, ad esempio, della rappresentazione MS (Modulo e Segno) che permette di rappresentare numeri compresi nell'intervallo (-2n-1, 2n-1). Nella rappresentazione con complemento a due, invece, è possibile rappresentare numeri nell'intervallo [-2n-1, 2n-1 + 1].
n=4 (bit): (-2n-1, 2n-1) = (-8, 8) Estremi NON compresi →
[-2n-1, 2n-1 + 1] = [-8, 7] Estremi compresi →
Questa differenza è dovuta al fatto che nella rappresentazione MS, esistono due zeri: Quello positivo (ovvero tutti i bit pari a 0 compreso quello del segno) e quello negativo (tutti i bit a 0 tranne quello del segno pari a 1). Al contrario, nella rappresentazione tramite complemento a due esiste un solo 0.
Metodi per la rappresentazione con complemento a due
Per poter effettuare la rappresentazione con complemento a due si può procedere in due possibili modi:
-
Metodo 1: Utilizzare la formula (2n - |N|)
Questo metodo è effettuabile solamente se si intende ottenere immediatamente un numero negativo rappresentato in base 2 complemento a due. Infatti, per ottenere attraverso questo metodo il numero opposto (positivo), bisognerà invertire tutti i bit e sommare un 1. -
Metodo 2: Procedere con il metodo delle divisioni ripetute per ottenere il numero in rappresentazione in base 2 complemento a due
- Considerare il modulo del numero dato
- Effettuare il metodo delle divisioni ripetute per trovare il numero dato convertito in rappresentazione binaria
- Aggiungere uno 0 davanti al numero binario appena ottenuto
- Opzionale: Nel caso in cui si voglia rappresentare un numero negativo occorre anche andare ad invertire i bit e sommarvi un bit pari a 1
Esempi pratici
1) N = -29
-
Calcolo: n = ⌈Log2 (30)⌉ + 1 = ⌈4,1⌉ + 1 = 6
(2n - |N|) = (26 – 29) = 64 – 29 = 35
Divisione:
N b R 35 2 1 17 2 1 8 2 0 4 2 0 2 2 0 1 2 1
Risultato: 100011
-32 + 2 + 1 = -29 → 2CP
2) Rappresentazione di +29
-
Calcolo opposto: 011100 + 1 = 011101
+29 → 2CP
Divisione:
N b R 29 2 1 14 2 0 7 2 1 3 2 1 1 2 1
Risultato: 011101 * 2 + 0 * 2 + 1 * 2 + 1 * 2 + 1 = 29
3) Rappresentazione di -29
-
Calcolo opposto: 100010 + 1 = 100011
-29
-
Rappresentazione informazione
-
Rappresentazione dell informazione
-
Codifica e Rappresentazione delle Informazioni
-
Simbolismo, rappresentazione della società e ideologia comunista Pavesiana