给一个数字,求问其二进制表示一共有多少个1

思路+代码+注释:

public int oneNum(int n)
    {
        /*
        思路:使用count记录1的个数
            特性:一个数和该数-1做与运算可以消除最低位的1
            拿数和该数-1做与运算,每次消除最低位的1count++,当所有1被消除时该数变为0
         */
        int count=0;
        while (n!=0)
        {
            n=n&(n-1);
            count++;
        }
        return count;
    }

猜你喜欢

转载自blog.csdn.net/qq_36059306/article/details/88733340