查看: 1158|回复: 0
打印 上一主题 下一主题

快速的判断一个数的二进制中有多少个1(转)

[复制链接]
跳转到指定楼层
沙发
发表于 2015-10-27 18:23:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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
转载

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表