题目:编写一个函数invert(x, p, n),该函数返回对x执行下列操作后的结果值:将x种从中p位开始的n个(二进制)位求反(即,1变成0, 0变成1),x的其余各位保持不变。
下面是代码:
unsigned invert(unsigned x, int p, int n)
{
return ~(~0 << n) << (p - 1) ^ x & x;
}
题目:编写一个函数invert(x, p, n),该函数返回对x执行下列操作后的结果值:将x种从中p位开始的n个(二进制)位求反(即,1变成0, 0变成1),x的其余各位保持不变。
下面是代码:
unsigned invert(unsigned x, int p, int n)
{
return ~(~0 << n) << (p - 1) ^ x & x;
}