Complemento a uno
L'operatore di complemento a uno è rappresentato con
la tilde (' '). Il
complemento ad uno di un numero si ottiene invertendo tutti i bit che lo
compongono: ad esempio, con riferimento a dati espressi con un solo byte, il
complemento a uno di , mentre quello di . Infatti, rappresentando il
byte come una stringa di 8 bit, nel primo caso si passa da a , mentre nel secondo da si ottiene . Pertanto
a = 2;
printf('%dn',~a);
produce la visualizzazione proprio del numero
L'operatore di complemento a uno (o negazione binaria) non va confuso
né con l'operatore di negazione logica, di cui si è appena detto, né con quello
di negazione algebrica o meno unario (' ', vedere di seguito), dei quali si è
detto poco sopra: del resto, la differenza tra i tre è evidente. Il primo
'capovolge' i singoli bit di un valore, il secondo rende nullo un
valore non nullo e viceversa, mentre il terzo capovolge il segno di un valore,
cioè rende negativo un valore positivo e viceversa.