<分区>
我有一个代表掩码的数字,我想得到负掩码(0110,即 6)。我想按位不做,但它似乎也否定了符号位,我得到了一个不需要的值......
size_t msk = 9; // that is 1001, or 000...01001 on more bits
size_t nMsk = ~msk; // this I want to be 6, that is 0110, but bitwise not
// is negating all the bits, so I get 111...10110
是否有快速的方法(无需循环)?
编辑 更多信息:
我在其中一个答案的评论中添加了一些更好的案例: 在我的例子中,16 是 100000000,~16 不是 111011111111,而是 000011111111