按位异或:设置 X 位

Bitwise XOR: Setting X bit

我对如何解决这个问题有点困惑。

我在某处读到

n ^ (1 << x)

会解决的。我可以看到有关其工作原理的图解说明吗?

假设我们使用 8 位数字首先你从 1

开始

二进制文件看起来像这样

00000001

然后使用<<运算符将操作数的位移动x

如果x = 4

00001000 ( 16 in decimal, 0x10 in hexadecimal )

然后对结果操作数使用 ^ 运算符 (xor)

输入n=8 (00000100)

结果

     00000100
xor  00001000
  =  00001100

PS: xor 翻转 未设置 它,如果你想设置它无论初始状态如何,使用 or 运算符 (|)