解题思路 要对n个位进行求反,我们可以使用异或操作,即相同得0,不同的1,即让那n个位分别于1进行异或操作,若原数位为1,则的0,若原数位为0,则得1。 unsigned invert(unsigned x, int p, int n) { return x ^ (~(~0 << n) << (p - n + 1)); }