位运算基础前置知识
在深入具体题目之前,先快速回顾几个核心运算符。位运算在处理底层数据时往往能带来 O(1) 的空间优化或更快的执行速度。

下面通过几道经典例题来巩固这些概念,重点看它们如何巧妙利用位特性简化逻辑。
位 1 的个数
C++ 算法代码:
class Solution {
public:
int hammingWeight(int n) {
int count = 0;
while(n) {
// n & (n - 1) 可以消除 n 的二进制表示中最右边的 1
n &= (n - 1);
count++;
}
return count;
}
};
比特位计数
C++ 算法代码:
class Solution {
public:
vector<int> countBits {
;
( i = ; i <= n; i++) {
count = ;
num = i;
(num) {
num &= (num - );
count++;
}
ans[i] = count;
}
ans;
}
};




