写一个函数,求输入的数字的二进制数中有多少个1

阅读 30

2022-02-19

#include <stdio.h>

//第一种

int count_1(unsigned int num)
{
	int count=0;
	while(num)
	{
		if(num%2==1)
		{
			count++;
		}
		num=num/2;
	}
	return count;
}

//第二种

int count_1s(int num)
{
	int count=0;
	int i=0;
	for(i=1;i<=32;i++)
	{
		//将num向右移动i位,按位与1        
		if(( num>>i & 1 ) ==1)
		{
			count++;
		}
	}
	return count;
}

int main()
{
	int num=-6;
	int input1=count_1(num);
	int input2=count_1s(num);
	printf("%d\n",input1);
	printf("%d\n",input2);
	return 0;	
} 

精彩评论(0)

0 0 举报