2017-07-18 1 views

Répondre

1

Considérons ce que "3" est en binaire 4 bits.

0011 

Pour un nombre x, lorsque l'expression est "x 3 &" true (à savoir, non nulle)? C'est vrai quand x a 1s dans l'une ou l'autre de ses deux positions de bit les moins significatives. Quand un nombre n'a-t-il pas 1 dans l'une ou l'autre de ses deux positions de bit les moins significatives? Considérons multiples de 4:

4:  8:  12:  etc... 

    0011 0011  0011 
& 0100 & 1000 & 1100 
    ---- ----  ---- 
    0000 0000  0000 

TL; DR (i - 3) 3 & évalue à vrai lorsque (i - 3) ne soit pas un multiple de 4.