题目描述:
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
实现如下:
class Solution
{
public:
int NumberOf1(
int n)
{
int x =
1;
int num =
0;
for (
int i =
0; i <
sizeof(
int)*
8; ++i)
{
if (n & x) ++num;
x = x <<
1;
}
return num;
}
};
class Solution
{
public:
int NumberOf1(
int n)
{
int num =
0;
while (n !=
0)
{
++num;
n = n & (n -
1);
}
return num;
}
};