写一个函数返回参数二进制中 1 的个数。比如: 15 二进制: 0000 1111 里边有4个1(C语言实现);
今天我想用简单的函数调用,编写一个简单的函数完成题面要求
简单思路:做一个简单循环,让这个数自己与自己比较,用位操作符&,有1则count++,做完统计即可找出它自身有多少个1,代码如下:
#include<stdio.h>
#include<windows.h>
#pragma warning(disable: 4996);
int GeShu(int num)
{
int count = 0;
while (num)
{
num = num & (num - 1);
count++;
}
return count;
}
int main()
{
int num;
printf("输入一个整数");
while (scanf("%d", &num) == 1)
{
printf("%d\n", GeShu(num));
}
system("pause");
return 0;
}
仅代表个人思路与做法,还请各位爱好者批评指正!