LintCode 179: Update Bits (位运算题)
程序员文章站
2022-07-05 13:06:51
...
经典位运算题。
记得尽量给位运算加括号,因为其优先级非常低。
class Solution {
public:
/**
* @param n: An integer
* @param m: An integer
* @param i: A bit position
* @param j: A bit position
* @return: An integer
*/
int updateBits(int n, int m, int i, int j) {
for (int k = i; k <= j; ++k) {
if (m & (1 << k - i))
n |= (1 << k);
else
n &= ~(1 << k);
}
return n;
}
};