插入符号(^)操作符的作用是什么?

173 投票
5 回答
138132 浏览
提问于 2025-04-15 20:28

今天我在Python中遇到了一个叫做“插入符号运算符”的东西,试了一下,得到了以下输出:

>>> 8^3
11
>>> 8^4
12
>>> 8^1
9
>>> 8^0
8
>>> 7^1
6
>>> 7^2
5
>>> 7^7
0
>>> 7^8
15
>>> 9^1
8
>>> 16^1
17
>>> 15^1
14
>>>

这个运算符看起来是基于8的,所以我在想这可能是某种字节操作?我在网上找了很多资料,但除了它对浮点数的表现有点奇怪之外,没找到太多信息。有没有人能给我一个链接,告诉我这个运算符具体是干什么的,或者在这里解释一下?

5 个回答

16

这是一种逐位的异或运算。二进制位运算符的详细说明可以在Python语言参考的第5章找到。

51

它会根据需要调用对象的 __xor__()__rxor__() 方法,对于整数类型来说,这个方法会进行按位异或运算。

258

这是一个位运算中的异或运算。

它的结果只有在两个输入不一样的时候才会是True(一个是True,另一个是False)。

为了演示一下:

>>> 0^0
0
>>> 1^1
0
>>> 1^0
1
>>> 0^1
1

来解释一下你自己举的例子:

>>> 8^3
11

可以这样理解:

1000  # 8 (binary)
0011  # 3 (binary)
----  # APPLY XOR ('vertically')
1011  # result = 11 (binary)

撰写回答