【c语言】蓝桥杯算法提高 P0401

十年热恋 提交于 2020-03-17 15:16:15

问题描述
输入一个无符号整数x,输出x的二进制表示中1的个数.


输入
  76584


输出
  7


#include<stdio.h>
int main(int argc,char *argv[])
{
	unsigned int n;
	scanf("%d",&n);
	int cnt=0;
	while(n)
	{
	if(n&1)//位运算,判断n的二进制位是否为0,n=1为真,非0为假
	cnt++;
	n>>=1;//n的二进制位向右移动一位,判断是否等于1;即n=n>>1
	}
	printf("%d\n",cnt);
	return 0;
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!