0
点赞
收藏
分享

微信扫一扫

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

杰克逊爱学习 2022-02-19 阅读 30
c语言
#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 条评论