#include<stdio.h>
//求一个数字二进制中1的个数
int NumOf1(int n)
{
int count = 0;
while(n != 0)
{
if(n & 1)//数字n按位与1
{
count++;//个数+1
}
n = n >> 1;//n右移1位,相当于除以2
}
return count;
}
int main()
{
printf("%d\n",NumOf1(3));
printf("%d\n",NumOf1(6));
printf("%d\n",NumOf1(15));
getchar();
return 0;
}
答案:2,2,4