怎么求二进制的位数?
首把n%2 这个给我们对应二进制的bit 要么是0 要么是1
如果是1那么把1的位数增一个;
把n/=2;
返回;
class Solution {
public int hammingWeight(int n) {
int m = countBit(n);
return m;
}
public int countBit(int n){
int res = 0;
while(n>0){
if(n%2==1)
res++;
n/=2;
}
return res;
}
}
法2;
循环直到n==0;
把n&1==1
如果是
那么count++;
然后把n>>1 右移一位检查下一个数;