0%

2-7:invert(x,p,n)

文章时效性提示

本文发布于 469 天前,部分信息可能已经改变,请注意甄别。

编写一个函数invert(x,p,n),该函数返回对x执行下列操作后的结果值:将x中从第p位开始的第n个(二进制)位求反(即1变成0,0变成1),x的其余各位保持不变。

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int invert(unsigned x,int p,int n);
int main()
{
    printf("%d",invert(311,3,));
    return 0;
}

int invert(unsigned x,int p,int n)
{
    return x ^ (~(~0 << n) << (p+1-n));
}