目录
牛客CM26 二进制插入
解析代码
m:1024:100000000 00 n:19 : 10011 要把n的二进制值插入m的第j位到第i位,只需要把n先左移j位,然后再进行或运算(|)即可
class BinInsert {
public:
int binInsert(int n, int m, int j, int i) {
// 1 2 4 8 16 32 64 128 256 512 1014
// 1024 + 2 + 4 + 32 =
// 1024 + 4 + 8 + 64 = 1024 + 76
// 10000000000
// 10011
// 10001001100
return n |= (m << j); // 法1
//for (int k = j; k <= i; ++k) // 法2
//{
// if (m & 1)
// {
// n |= (1 << k);
// }
// m >>= 1;
//}
// return n;
}
};