public static int hammingWeight(int n){
int sum = 0;
/*
(n−1) 作用: 二进制数字 n 最右边的 1 变成 0 ,此 1 右边的 0 都变成 1 。
n&(n−1)作用: 二进制数字 n 最右边的 1 变成 0 ,其余不变。
*/
while (n!=0){
//循环消除最右边的1
n = n&(n-1);
sum++;
}
return sum;
}
循环消除二进制数最右边的1
最新推荐文章于 2024-06-02 10:28:16 发布