编写一个函数 invert(x, p, n),该函数返回对x 执行下列操作后的结
果值:将x中从第p位开始的n个(二进制)位求反(即,1 变成0,0 变成1),x的其余各
位保持不变。
技巧:不变的位与0异或,要取反的位于1异或
#include int invert(int x, int p, int n); int invert(int x, int p, int n) { int t; t = ~(~0 << n); return x ^ (t << (p + 1 - n)); } main() { printf("%d\n", invert(58, 4, 3)); }