方法一:
代码如下:
#include <stdio.h>
int main()
{
int num=0;
int count=0;
scanf("%d",&num);
while(num)
{
if(num%2==1)
count++;
num=num/2;
}
printf("count=%d\n",count);
return 0;
}
运行结果如下:
如果输入数为负数可能产生错误则有方法二
方法二:
#include <stdio.h>
int main()
{
int num=0;
int i=0;
int count=0;
scanf("%d",&num);
for(i=0;i<32;i++)
{
if(1==((num>>i)&1))
count++;
}
printf("count=%d\n",count);
return 0;
}