jz12.二进制中1的个数

140 阅读1分钟

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

public class Solution {
    public int NumberOf1(int n) {
       //思路:n和n-1做一次与运算,就会减少n里面的一个1
        int count = 0;
        while(n!=0){
            ++count;
            n=(n-1)&n;
        }
        return count;
    }
}