Complemento a uno

Da Wikipedia, l'enciclopedia libera.
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. Esso è una alternativa al complemento a due, ed è meno usato.

Calcolo del complemento a uno[modifica | modifica wikitesto]

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 | modifica wikitesto]

Per la somma di due numeri in complemento a uno basta sommare i singoli bit, e se c'è un riporto a sinistra del bit di segno basta sommarlo al risultato.

Esempio:

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

Sottrazione[modifica | modifica wikitesto]

La sottrazione è simile all'addizione a parte il fatto che si prende in prestito, anziché portare, da sinistra.

Esempio:

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

Complemento ad uno di un insieme[modifica | modifica wikitesto]

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:

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

Rappresentazione dello zero[modifica | modifica wikitesto]

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 quanto 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 | modifica wikitesto]

È 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 | modifica wikitesto]

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