写一个函数返回参数二进制中 1 的个数 比如: 15 0000 1111 4 个 1

     运行环境: win10  vs2013

        通常我们从数字键盘输入的数字是10进制的数,所以在统计某一个数字二进制中有多少个一时,就需要先将10进制的数转换为二进制,而十进制转换为二进制最简单的就是对这个数字进行除二运算,在除二运算完后然后对他进行模二运算,如果模二运算的结果等于一,那么就对其进行加一统计,直到所有数字统计完成后,进行输出即可

程序实现:

写一个函数返回参数二进制中 1 的个数 比如: 15 0000 1111 4 个 1

程序运行结果测试:

写一个函数返回参数二进制中 1 的个数 比如: 15 0000 1111 4 个 1

写一个函数返回参数二进制中 1 的个数 比如: 15 0000 1111 4 个 1

 

#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;
}