public:
     int  NumberOf1(int n) {
         int cnt=0;
         //我们可以发现1100010和1100001 相与&后是1100000
         //1011111和和1100000 &的结果是1000000
         //每相与一次就会少一个1,通过这个方法可以计算1的个数
         while(n!=0){
             cnt++;
             n=n&(n-1);
         }
         return cnt;
     }
};