二进制1中的个数

2019-06-17  本文已影响0人  雨的印记2012

牛客网(java实现)


问题描述:

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

问题分析:

(用位运算实现)
不断清除n的二进制表示中最右边的1,同时累加计数器,直至n为0

算法实现:

参考代码:

public class Solution {
    public int NumberOf1(int n) {
        int sum = 0;
        if (n == 0)
            return 0;
        while (n != 0)
        {
            sum++;
            n = n&(n-1);
        }
        return sum;
    }
}
上一篇下一篇

猜你喜欢

热点阅读