中科因仑“3+1”工程特种兵精英论坛

标题: 快速的判断一个数的二进制中有多少个1(转) [打印本页]

作者: 张衍波    时间: 2015-10-27 18:23
标题: 快速的判断一个数的二进制中有多少个1(转)

x=x&(x-1)

表达式的意思就是:把x的二进制表示从低位开始,将遇到的第一个为1的比特位置0。

例如:

e1:
x = 01001000
x-1 = 01000111
x&(x-1)=01000000

e2:
x = 01001001
x-1 = 01001000
x&(x-1)=01001000
转载






欢迎光临 中科因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/) Powered by Discuz! X3.4