1、写一个函数返回参数二进制中 1 的个数
比如: 15 0000 1111 4 个 1
2、思路:由于十进制转化为2进制时,是除2取余,故只需判断除2的余数是否为1即可。
3、程序:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int count_one_bits(unsigned int num);
int main()
{
printf("input a data:");
int num;
scanf("%d", &num);
int count = count_one_bits(num);
printf("%d\n", count);
system("pause");
return 0;
}
int count_one_bits(unsigned int num)
{
// 返回 1的位数
int count = 0;
while (num)
{
if (num % 2 == 1)
{
count++;
}
num = num / 2;
}
return count;
}
4、结果: