思路:当一个整数变为二进制(a来表示)时,它与a-1的与运算结果会使得a的末位1被抹去,反复与运算就可以使得a变为0,那么这样就可以来计算a中1的个数了。
class Solution {
public:
int NumberOf1(int n) {
int count = 0;
while(n)
{
n = n&(n-1);
count++;
};
return count;
}
};