大家都知道一个十进制数通过模10,除10就可以得到一个整数的每一位数。那么同理,二进制数也一样可以通过%2,/2得到这个二进制数的每一位。想明白这点这题就基本解决了。再定义一个计数器记录1的个数。
#include <stdio.h>
int get_one(int a)
{
int count = 0;
while (a)
{
if (a % 2 == 1)
{
count++;
}
a /= 2;
}
return count;
}
/// <summary>
/// 输入一个整数统计这个数二进制1的个数
/// </summary>
/// <returns>这个数二进制1的个数</returns>
int main()
{
int a ;
scanf_s("%d", &a);
int res = get_one(a);
printf("%d", res);
return 0;
}
原文:https://www.cnblogs.com/ChenXinRong/p/14545828.html