1.常规解法:不断左移1

class Solution {
public:
     int  NumberOf1(int n) {
         unsigned int flag=1;
         int count=0;
         while(flag){
             if(n & flag) count++;
             flag=flag<<1;
         }
         return count;
     }
};

2.一个技巧

class Solution {
public:
     int  NumberOf1(int n) {
         int count=0;
         while(n){
             n=(n-1) & n;
             count++;
         }
         return count;
     }
};