Complemento a uno

metodo di rappresentazione dei numeri relativi in base binaria

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.

Complemento a uno
Complemento a uno

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

modifica

Per 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

modifica

Esempio:

  0001 0110     22
+ 0000 0011      3
===========   ====
  0001 1001     25

Sottrazione

modifica

Esempio:

  0000 0110      6
- 0000 0001      1
===========   ====
  0000 0101      5

Complemento ad uno di un insieme

modifica

Il 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:

  1.  
  2.  

Lo spazio delle probabilità ha valore 1, che per un numero discreto di eventi, indica un evento certo.

Rappresentazione dello zero

modifica

Al 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

modifica

Collegamenti esterni

modifica
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica