思路:整数n: n&(n-1) 相当于把整数的二进制表示中的最右边一个1变为0;
public class Solution {
public int NumberOf1(int n) {
int count = 0;
while(n != 0){
count ++;
n = (n - 1) & n;
}
return count;
}
}
延伸:(&:遇0为0;|:遇1为1;^:相同为0,不同为1)
本文介绍了一种高效的方法来计算一个整数在二进制表示中1的个数,通过使用位操作符“&”实现。该方法通过不断将n与n-1进行按位与运算,直到n变为0,每进行一次运算就累加1次计数。此外,还解释了按位与、按位或和按位异或的基本原理。
172万+

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



