比如: 15
用二进制表示为:0000 0000 0000 0000 0000 0000 0000 1111 一共有4 个 1
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int count_one_bits(unsigned int value)
{
int i = 0;
int con = 0;
for (i = 0; i < 32; i++)//把32比特位都判断
{
if (((value>>i) & 1) == 1)//注意这里的右移运算符>>
{
con++;
}
}
return con;
// 返回 1的位数
}
int main()
{
unsigned int num = 0;
printf("请输入一个无符号整数:");
scanf("%d", &num);
int count = count_one_bits(num);
printf("此数中二进制数1的个数为:%d\n", count);
system("pause");
return 0;
}