比方说有这样一个题:判断一个数是不是2的幂怎么运算?
可能我们就要局限于常规的方法(此处不列举)
受启发于微博上的牛人 陈立人出的面试题:写出一行程序语言(任何编成语言都行)表达式,判断给定的整数是否是一个2的幂。
有网友就贴出超赞的答案x&(x-1)。说实话当时确实没看明白是怎么回事,偶然看到别人推荐的一本书hacker delight ,其开篇这样一段话:
use the following formula to turn off the rightmost 1-bit in a word,producing 0 if none( eg,01011000=>01010000)
x&(x-1)
这样我才领略到了其中的妙处