位运算
- 关于&的常识:1 & 1 = 1, 1 & 0 = 0;
- 关于 >> 向左移动一位。
import java.util.*;
public class Solution {
public int NumberOf1(int n) {
int res = 0;
for (int i = 0; i < 32; i++){
if ((n & (1 << i)) != 0){
res++;
}
}
return res;
}
}
优化。
有一个规律, n&(n−1),会将n的二进制中最低位由1变成0
import java.util.*;
public class Solution {
public int NumberOf1(int n) {
int res = 0;
while (n != 0){
n = n & (n - 1);
res++;
}
return res;
}
}

这篇文章探讨了一种优化方法,通过利用n与(n-1)的位运算技巧,减少求解整数中1的个数的计算步骤。作者展示了如何通过连续进行位与操作来清除最低位的1,从而简化`NumberOf1`函数,提高代码效率。

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



