计算十进制数中对应2进制数的1的个数

例如:输入整数n,对应求法如下

for(c=0; n; ++c){

    n&=(n-1);

}

return c

n&=(n-1)是清除n最右边的1,如(1000)= 7(0111)+ 1(0001),所以8 & 7 = (1000)&(0111)= 0(0000),清除了8最右边的1

 

阅读更多
文章标签: c
个人分类: C语言
上一篇C语言中的浮点数
下一篇C语言的移位运算
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭