思路
从图上分析我们可以把二进制中的1通过位操作取出来再进行统计
代码实现
#include <stdio.h>
#include <windows.h>
int get_back(int x)
{
int i = 0;
int count = 0;//计数
for(i=0; i<32; i++)
{
if(((x >> i) & 1) == 1)//把1取出来进行统计
{
count++;
}
}
return count;
}
int main()
{
int num = 0;
int ret = 0;
printf("请输入一个数:\n");
scanf("%d",&num);
get_back(num);
ret = get_back(num);
printf("二进制中1的个数为:%d\n",ret);
system("color F1");
return 0;
}