关于位运算x&(x-1)等

来源:互联网 发布:阿里云服务器开放3306 编辑:程序博客网 时间:2024/05/21 12:48

比方说有这样一个题:判断一个数是不是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)

这样我才领略到了其中的妙处

原创粉丝点击