方法一:判断有多少个1,可以将一个数不断的和1相与,之后将此数的二进制向右移动一位这样就可以判断有多少个一
public int getSum(int n){
int count = 0;
if(n&1){
count++;
}
return count;
}
方法二:一个整数减去一,然后和之前的数作与运算,会把当前整数的二进制最右边的1变成0,那么就是运算几次就有几个1
public int getSum(int n){
int count = 0;
while(n){
count++;
n = n&(n-1);
}
return count;
}
本文介绍了两种计算整数二进制表示中1的数量的方法。第一种方法通过不断与1进行按位与操作并右移来计数1。第二种方法通过重复执行n与n-1的按位与操作直至n变为0,期间每执行一次该操作就表示找到一个1。
443

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



