问题描述
输入一个无符号整数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;
}
来源:CSDN
作者:折腾的小飞
链接:https://blog.csdn.net/qq_41666142/article/details/104919183