面试题15:二进制中1的个数

题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如,把9表示成二进制是1001,有两个1。因此,如果输入9,则该函数输出2.
思路:数n和(n-1)进行与运算,则会消除一个1,如1100和1011与运算后为1000,精彩。
解决方案:

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

    public static void main(String[] args) {
        System.out.println(NumberOf1(3));
    }
}

你可能感兴趣的:(面试题15:二进制中1的个数)