Python中的插入符号(^)是做什么的?

2024-05-17 08:09:34 发布

您现在位置:Python中文网/ 问答频道 /正文

今天我在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,所以我猜是某种字节操作?我似乎找不到更多关于这个搜索网站,除了它的行为奇怪的浮动,有没有人链接到这个运营商做什么或你能在这里解释吗?


Tags: 字节网站链接符号运算符运营商
3条回答

它根据需要调用对象的__xor__()__rxor__()方法,对于整数类型,该方法执行逐位异或。

它是按位的XOR(exclusive OR)。

如果操作数中有一个(且只有一个)为真,则结果为真。

证明:

>>> 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)

这是一点一点排他性或。二进制位运算符记录在chapter 5 of the Python Language Reference中。

相关问题 更多 >