计算一个整数二进制位中1的个数。要求效率尽可能的高。且能正确求正数和负数的二进制中1的个数。
int BitCount(int n)
{
int count = 0;
while (n)
{
n = n&(n - 1);
++count;
}
return count;
}
int main()
{
int n = 9;
int tty = BitCount(n);
cout <<"1的个数: " << tty << endl;
system("pause");
return 0;
}