面试题12:二进制中1的个数
题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制是1001,有2位是1。因此如果输入9,该函数输出2。
解答:代码如下:
int NumberOf1(int n)
{
int count = 0;
while(n != 0)
{
n &= (n - 1);
count++;
}
return count;
}
本文介绍了一个高效算法,用于计算任意整数在二进制表示下1的个数。通过位操作,每次迭代减少一位1,直至整数变为0,返回计数即为1的个数。
面试题12:二进制中1的个数
题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制是1001,有2位是1。因此如果输入9,该函数输出2。
解答:代码如下:
int NumberOf1(int n)
{
int count = 0;
while(n != 0)
{
n &= (n - 1);
count++;
}
return count;
}

被折叠的 条评论
为什么被折叠?