Perché ~ 0 a Sequenza di 1s [chiusa]

5

Perché ~0 una sequenza di 1 bit e non solo un singolo bit? Da dove provengono i bit 1 extra? Significa ~1 una sequenza di 0 bit o solo un singolo 0 bit?

La mia comprensione era che l'operatore ~ è applicato sui bit specifici menzionati.

    
posta clicky 26.02.2014 - 12:25
fonte

2 risposte

20

perché 0 nella rappresentazione scelta (complemento a 2) è una sequenza di 0 s, applicando il NOT bit a bit su di esso si otterrà naturalmente una sequenza di 1 s

1 è una sequenza di 0 s seguita da un singolo 1

Ricorda che un computer utilizzerà tutti i bit disponibili per rappresentare un numero in una variabile. In altre parole se si dispone di una variabile a 64 bit, tutti i 64 bit saranno in uso anche se il 90% di essi sono 0 .

    
risposta data 26.02.2014 - 12:29
fonte
42

Perché è ciò che ~ fa.

Capovolge i bit dell'operando. Se il tuo linguaggio di scelta considera quel valore letterale 0 come valore di un byte, è essenzialmente:

00000000

Quando i morsi vengono capovolti usando ~ (bit-bit NOT), il risultato è:

11111111

Allo stesso modo in cui ~10 girerebbe:

00001010

A:

11110101
    
risposta data 26.02.2014 - 12:28
fonte

Leggi altre domande sui tag