最基本的方法:
#include<stdio.h>
int main()
{#include<stdio.h>
int main()
{
unsigned int num = -1;
int count = 0;
while(num)
{
if(num%2 == 1)
count++;
num=num/2;
}
printf("count = %d\n",count);
return 0;
}
可用的方法:
int num = -1;
int count = 0;
int i =0;
for(i=0;i<32;i++)
{
if(num&1==1)
count++;
num = num>>1;
}
printf("count = %d\n",count);
return 0;
}
最优的方法:#include<stdio.h>
int main()
{
int num = -1;
int count = 0;
while(num)
{
count++;
num = num & (num-1);
}
printf("count = %d\n",count);
return 0;
}