最基本的方法:
#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;
}
本文介绍了三种不同的方法来计算一个整数中1的位数,包括最基本的循环方法、逐位检查方法以及一种高效的算法。这些方法对于理解二进制表示和位操作非常有用。

被折叠的 条评论
为什么被折叠?



