Complemento a uno
Il complemento a uno (in inglese ones' complement), o complemento alla base diminuita, è un metodo di rappresentazione dei numeri relativi in base binaria. In origine la rappresentazione del complemento a uno deriva dal complemento alla base (2) diminuita di uno per quel che riguarda i numeri negativi, ovvero se nel complemento a 2 un numero negativo N è individuato come 2^ (n)-N dove n è il numero di bit a disposizione, con il complemento a 1 un numero negativo sarà individuato con 2^ (n)-N-1. Di conseguenza con questa rappresentazione otterremo un valore dello 0 doppio (tutti 0 e tutti uno) infatti se calcoliamo il valore di 0 con n bit avremo 2^ (n-1)-1 che corrisponde alla configurazione con n bit a 0. Il valore del più piccolo numero rappresentabile sarà quindi -2^ (n-1)+1 dove aggiungiamo 1 poiché perdiamo un numero con la seconda rappresentazione dello 0.
La rappresentazione in complemento a 1 è meno usata di quella in complemento a 2 ma, per la sua facilità di calcolo, risulta molto utile nelle operazioni di sottrazione all'interno delle ALU.
Calcolo del complemento a uno
modificaPer trovare la rappresentazione in complemento a uno si invertono semplicemente tutti i bit della parola.
Facciamo un esempio. Prendiamo il numero 10 rappresentato su 8 bit in base 2:
0000 1010 (10)
Il suo complemento a uno sarà:
1111 0101 (-10)
Addizione
modificaEsempio:
0001 0110 22 + 0000 0011 3 =========== ==== 0001 1001 25
Sottrazione
modificaEsempio:
0000 0110 6 - 0000 0001 1 =========== ==== 0000 0101 5
Complemento ad uno di un insieme
modificaIl complemento ad uno di un insieme si scrive con ed è un insieme tale che sommato al primo esplora lo spazio di tutti i valori possibili. In statistica, tale spazio di un numero discreto di eventi (elementi degli insiemi) è detto probabilistico ed è denotato con , e vale che:
Lo spazio delle probabilità ha valore 1, che per un numero discreto di eventi, indica un evento certo.
Rappresentazione dello zero
modificaAl contrario di quanto avviene nella rappresentazione in complemento a due dove esiste una sola rappresentazione dello zero (quella con tutti i bit a zero), esistono in complemento a uno due differenti rappresentazioni del numero zero, quella con tutti zero e quella con tutti uno:
0000 0000 (+0) 1111 1111 (-0)
questo può essere utile quando sia necessario rappresentare lo zero in due forme: lo zero positivo e lo zero negativo; anche se un punto di vista puramente matematico lo zero non ha segno, tuttavia in alcune applicazioni può essere utile conservare tale informazione.
Evitare lo zero negativo
modificaÈ semplice, si calcola il complemento a uno del sottraendo e si sottrae al primo operando. In questo modo l'addizione non ritornerà uno 0 negativo.
0001 0110 22 0001 0110 22 1110 1001 −22 1110 1001 −22 + 1110 1001 −22 − 0001 0110 22 + 0001 0110 22 − 1110 1001 −22 =========== ==== ma =========== ==== allo stesso modo, =========== === ma =========== === 1111 1111 −0 0000 0000 0 1111 1111 −0 0000 0000 0
Voci correlate
modificaCollegamenti esterni
modifica- (EN) Denis Howe, ones complement, in Free On-line Dictionary of Computing. Disponibile con licenza GFDL