解题思路

$n&(n-1) 的结果为 110&101 ,得到 100,$

$n&(n-1),可以去掉一个1$

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
class Solution {
public:
    int NumberOf1(int n) {
        int res = 0;
        while(n) {
            res++;
            n = n&(n-1);
        }
        return res;
    }
};