为了账号安全,请及时绑定邮箱和手机立即绑定

求二进制数中1的个数

求二进制数中1的个数

有只小跳蛙 2019-04-07 09:38:40
编程之美中的一道题,有一个解法想不明白该算法只考虑1的个数代码如下:intCount(BYTEv){intnum=0;while(v){v&=(v-1);num++;}returnnum;}在网上看了一下都只是把算法给出来都没有解释,哪位同学帮忙解释一下,想不明白.多谢
查看完整描述

2 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

其实就是简单的位运算啊,给你写个更好理解的
#include
#include
intmain(void)
{
intn,count;
while(scanf("%d",&n)!=EOF){
count=0;
while(n){
if(n&1)count++;
n>>=1;
}
printf("%d\n",count);
}
return0;
}
                            
查看完整回答
反对 回复 2019-04-07
  • 2 回答
  • 0 关注
  • 317 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信