Fork me on GitHub

http://www.catonmat.net/blog/low-level-bit-hacks-you-absolutely-must-know/

 

Bit Hack #6. Turn off the rightmost 1-bit.

y = x & (x-1)

Bit Hack #7. Isolate the rightmost 1-bit.

y = x & (-x)

Bit Hack #8. Right propagate the rightmost 1-bit.

y = x | (x-1)

Bit Hack #9. Isolate the rightmost 0-bit.

y = ~x & (x+1)

Bit Hack #10. Turn on the rightmost 0-bit.

y = x | (x+1)

x y differ only 1 bit
dif = x^y
return dif && !( dif & (dif-1) )



posted on 2015-03-14 11:52  huashiyiqike  阅读(225)  评论(0编辑  收藏  举报