使用C语言完成统计一个无符号32bit数的二进制位1的个数:
方法1:
int main()
{
unsigned int a;
char num =0;
scanf("%u",&a);
while(a)
{
if(a&1)
num=num+1;
a = a>>1;
}
printf("%d\n",num);
return 0;
}
方法2:
#include<stdio.h>
#include<stdlib.h>
int main()
{
unsigned int a;
unsigned long long b;
char num =0;
scanf("%u",&a);
for(int i=0;i<32;i++)
{
b=a>>1;
if(a !=b<<1)
{
num=num+1;
}
a=a>>1;
}
printf("%d\n",num);
return 0;
}
方法3:
unsigned int a;
char sum = 0;
while(a != 0)
{
if(a%2)
{
累加1
}