剑指 Offer 15. 二进制中1的个数

2020-08-15  本文已影响0人  bangbang2
image.png
image.png

n&1如果为1,代表最右边数字为1,如果为0,代表最右边数字为0
Java中无符号右移,利用>>>
然后不断的把数字右移


image.png
很明显,+的优先级要高于&,所以要加一个(),否则得不出来结果
public class Solution {
    public int hammingWeight(int n) {
        int res = 0;
        while(n != 0) {
            res += n & 1;
            n >>>= 1;
        }
        return res;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读