现在的位置: 首页 > 综合 > 正文

c/C++ 求一个二进制数中有多少个1

2013年08月25日 ⁄ 综合 ⁄ 共 223字 ⁄ 字号 评论关闭

需要记住的是一个数与一个比自己小1的数相与的话会将自己的二进制标识中的最后面的一个1(最低位的1)去掉。

101

100

--------------

100     将最后面的1去掉了

110

101

------------

100   将110最后面的1去掉了。

101011100

101011011

---------------------

101011000 将101011100最后面的1去掉了。

所以只要循环一下就可以得出到底一个数有几个1了。

注意的是参数不能为0.

抱歉!评论已关闭.