统计一个整数二进制1的个数

思路:

大家都知道一个十进制数通过模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;
}

posted @ 2021-03-16 20:57  别学无止境  阅读(72)  评论(0)    收藏  举报