写一个函数返回参数二进制中 1 的个数 比如: 15 0000 1111 4 个 1
运行环境: win10 vs2013
通常我们从数字键盘输入的数字是10进制的数,所以在统计某一个数字二进制中有多少个一时,就需要先将10进制的数转换为二进制,而十进制转换为二进制最简单的就是对这个数字进行除二运算,在除二运算完后然后对他进行模二运算,如果模二运算的结果等于一,那么就对其进行加一统计,直到所有数字统计完成后,进行输出即可
程序实现:
程序运行结果测试:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int count_one_bits(unsigned int value)
{
int count= 0;
while (value)//value为0时跳出循环
{
if (value % 2)
count++;
value = value / 2;
}
return count;
}
int main()
{
int i = 0;
int result = 0;
printf("请输入一个正数:");
scanf("%d", &i);
result = count_one_bits(i);
printf("result=%d\n", result);
system("pause");
return 0;
}