大家都知道一个十进制数通过模10,除10就可以得到一个整数的每一位数。那么同理,二进制数也一样可以通过%2,/2得到这个二进制数的每一位。想明白这点这题就基本解决了。
#include <stdio.h>
int get_one(int a)
{
int count = 0;
while (a)
{
if (a % 2 == 1)
{
count++;
}
a /= 2;
}
return count;
}
int main()
{
int a ;
scanf_s("%d", &a);
int res = get_one(a);
printf("%d", res);
return 0;
}