常规思路,循环次数 == 数字长度

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

非常规思路,循环次数 == 1的数量

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