Attualmente sto imparando sull'operazione bit a bit, quindi abbi pazienza con me. Capisco AND, OR e spostando. Quello che non capisco è un po 'capovolto.
Quindi, 5
è 0101
. Quando qualcuno mi dice "capovolgi quelli", risulterebbe in 1010
che è 10
. Quindi, perché ~5
risulta in -6
?
Penso di aver sbagliato molto. Qualcuno può illuminarmi?
(Lo sto mettendo qui perché penso che sia una domanda generale di programmazione e non una specifica, che dovrebbe appartenere allo stack overflow).
Modifica 1 Grazie al commento di mcfinnigan ho appreso che esiste un "bit più significativo" che definisce se un numero è positivo o negativo (correggimi se sbaglio). Questo spiegherebbe perché i risultati positivi finiscono con il negativo e viceversa. Tuttavia, l'esempio precedente IMO risulterebbe in -10
quindi.
Modifica 2 Grazie a Don 01001100 e S.Lott, ho finalmente capito.