写一个函数返回参数二进制中 1 的个数
(1)#include <stdio.h>
int main()
{
int num = 0;
int i = 0;
int count = 0;
scanf("%d",&num);
for(i=0; i<32; i++)
{
if((num&1) == 1)
{
count++;
}
num = num>>1;
/*if(((num>>i)&1) == 1)//任何一个数字,给它按位与(&)"1",就能得知其最低位。
{
count++;
}*/
}
printf("%d\n", count);
return 0;
}
(2)
#include <stdio.h>
int main()
{
int num = 0;
int count = 0;
scanf("%d",&num);
while(num)
{
count++;
num = num&(num-1);//一个数和这个数减一,按位与(&),可以去掉最右面的"1"。
}
printf("count = %d\n", count);
return 0;
}
(3)#include <stdio.h>
int count_one_bits(unsigned int value){
int count = 0;
while(value)
{
if(value%2 == 1)
{
count++;
}
value = value/2;
}
return count;
}
int main(){
unsigned int num = 0;
int ret = 0;
printf("请输入一个数:\n");
scanf("%d",&num);
ret = count_one_bits(num);
printf("二进制中1的个数为%d\n",ret);
return 0;
}
写一个函数返回参数二进制中 1 的个数
最新推荐文章于 2019-11-10 22:59:31 发布