写一个函数返回参数二进制中 1 的个数
比如: 15 0000 1111 4 个 1
#include<stdio.h>
int fun(int a)
{
int count = 0;
while (a)
{
count++;
a = a & (a - 1);
//a & (a - 1)的结果会使a对应的二进制数中的1少一个,把结果赋给a直到a为0
//这样一来 a = a & (a - 1); 这句代码进行的次数就是a对应二进制数中1的个数
//用count 记下次数
}
return count;
}
int main()
{
int num = 15; //num也可由 scanf 输入
printf("num对应的二进制数中有 %d 个 1 \n", fun(num));
system("pause");//vs中想要看到打印需要写这一行
return 0;
}