题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
思路:
1、n-1,可以把第1个(从右往左)为1的数变成0,其右的0变成1
2、n &=(n-1)的作用就是把数字n的第1各为1的数字变成0
class Solution {
public:
int NumberOf1(int n) {
int count = 0;
while(n)
{
count++;
n &= (n-1);
}
return count;
}
};