
public static int getBitCount(int n) ...{
int count = 0;
boolean isNegative = false;
if(n < 0) ...{
n = -n;
isNegative = true;
}
while (n > 0) ...{
count+=(n & 1);
n>>=1;
}
return isNegative ? count + 1 : count;
}
方案2:
public static int getBitCount(int n) ...{
int count = 0;
while (n != 0) ...{
count+=(n & 1);
n>>>=1;
}
return count;
}
本文提供了两种方法来计算一个整数的二进制表示中有多少个1。第一种方法考虑了负数的情况,并对计算进行了相应的调整;第二种方法则通过循环逐位检查直到所有位都被检查完毕。

被折叠的 条评论
为什么被折叠?



