题目描述
请实现一个函数,输入一个整数,输出该整数二进制表示中1的个数。
解题思路
当一个数n和n-1做位与运算的结果不为0的时候,说明该数的二进制表示中存在1,而且位与的结果中1的个数会比n中1的个数刚好减少一个。我们可以根据这个方法来对齐进行位与,直到位与的结果为0,再输出循环的次数。
代码实现
int judge(int number)
{
int count = 0;
while (number != 0)
{
++count;
number = number & (number - 1);
}
return count;
}