写一个函数返回参数二进制1的个数。
如输入13时 0000 1101 个数为3 输入-1时个数为32;//32平台
第一种实现方法
#include<stdio.h>
int count_bit_one(unsigned int n)
{
int count=0;
while(n)
{
if((n%2)==1)
{
count++;
}
n=n/2;
}
return count;
}
int main()
{
int a=0;
int count;
scanf("%d",&a)
//求二进制(补码)的个数
count=count_bit_one(a);
printf("count=%d",count);
return 0;
}
第二种实现方法
#include<stdio.h>
int count_bit_one(int n)
{
int count=0;
int i;
for(i=0;i<32;i++)
{
if( ((n>>i)&1) ==1 )
count++;
}
return count;
}
int main()
{
int a=0;
int count;
scanf("%d",&a);
count=count_bit_one(a);
printf("count=%d",count);
return 0;
}
第三种实现方法
#include<stdio.h>
int count_bit_one(int n)
{
int count=0;
while(n)
{
n=n&(n-1);
count++;
}
return count;
}
int main()
{
int a=0;
int count;
scanf("%d",&a);
count=count_bit_one(a);
printf("count=%d",count);
return 0;
}
以上就是三种代码实现方法,对你有帮助的话点赞加关注。