Il complemento a uno (in ingleseones' 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
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:
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
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
È 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.