思路:
每个二进制的数字%2可以判断出它的最低一位是不是1,所以给这个数字每次%2,然后右移一位,直到这个数字等于0,即可判断出每一位是不是1。
#include<stdio.h>
int num1(int n)
{
int num = 0;
while(n>0)
{
if(n%2 == 1)
{
num++;
}
n = n>>1;
}
return num;
}
int main()
{
int n;
scanf("%d",&n);
int tmp = num1(n);
printf("%d\n", tmp);
return 0;
}