1、思路
-
先将
N
的第i ~ j
位全部置零; -
在将
M
左移i
位,使之对其上一步中N
置零的位,直接相加即可。
2、代码
class Solution {
public:
int insertBits(int N, int M, int i, int j) {
for (int k = i; k <= j; ++ k)
{ //举例说明: (1 << 3) 表示 00001000,取反后得 11110111
// N &= (11110111) 表示将 N 的第3位置零了
N &= ~(1 << k);
}
return N + (M << i);
}
};