Cancellare il bit più basso di un numero

5

Riesco a vedere in questo tutorial sulla manipolazione dei bit, sotto l'intestazione "Estrai ogni singolo bit", che -

Suppose we wish to find the lowest set bit of x (which is known to be non-zero). If we subtract 1 from x then this bit is cleared, but all the other one bits in x remain set.

Non capisco come questa affermazione sia vera.

Se prendiamo x = 110 , sottrarre 1 darebbe 101 .

Qui, il bit più basso non viene cancellato. Qualcuno può dirmi come mi sto avvicinando a questo problema in modo sbagliato?

    
posta theharshest 28.11.2013 - 01:57
fonte

1 risposta

6

Dopo aver sottratto 1, devi & i due valori. per es.

int bitremoved = x & (x-1);

Nel tuo esempio finisci con binario 100.

    
risposta data 28.11.2013 - 02:57
fonte

Leggi altre domande sui tag