我正在努力寻找有关 ^ 在 python 中的作用的文档。
前任。
6^1 = 7
6^2 = 4
6^3 = 5
6^4 = 2
6^5 = 3
6^6 = 0
帮助?
它是按位异或运算符,通常称为“xor”。对于操作数中的每一对对应位,如果操作数位相同,则结果中的对应位为 0,如果它们不同,则结果中的对应位为 1。
考虑6^4
:
6 = 0b0110
4 = 0b0100
6^4 = 0b0010 = 2
如您所见,两个数字中最不重要的位(右边的那个,在“一个”的位置)都是零。因此,答案中的最低有效位为零。下一位1
在第一个操作数和0
第二个操作数中,所以结果是1
.
XOR 有一些有趣的特性:
a^b == b^a # xor is commutative
a^(b^c) == (a^b)^c # xor is associative
(a^b)^b == a # xor is reversible
0^a == a # 0 is the identity value
a^a == 0 # xor yourself and you go away.
您可以使用 xor 更改值的奇数:
prev_even = odd ^ 1 (2 = 3 ^ 1)
next_odd = even ^ 1 (3 = 2 ^ 1)
有关 XOR 的更多信息,请在此处对 Python.org 上的文档做出反应: