如何对一个十六进制数的某一位取反,用C语言写,比如0x2F,我想对第六位取反,我该怎么写

2025-02-28 13:47:00
推荐回答(3个)
回答1:

0x2F ^ (1 << (6-1))

结果是15

第n位取反同(1 << (n -1)) 异或。

回答2:

异或0x04就可以了

int main()
{
int n = 0x2f;
n ^= 0x04;
return 0;
}

回答3:

0x2F^=00100000