思路
逐位比较;
一个数n和1做【与】运算后,如果n的二进制最后一位是1,那么 1&n = 1,否则为0;
每次比较结束后,将n无符号右移;
最后返回所有【与】运算结果为1的总次数即可
public int hammingWeight(int n) {
int res = 0;
while(n != 0){
res += n & 1;
n >>>= 1;
}
return res;
}
思路
逐位比较;
一个数n和1做【与】运算后,如果n的二进制最后一位是1,那么 1&n = 1,否则为0;
每次比较结束后,将n无符号右移;
最后返回所有【与】运算结果为1的总次数即可
public int hammingWeight(int n) {
int res = 0;
while(n != 0){
res += n & 1;
n >>>= 1;
}
return res;
}