插入符号(^)操作符的作用是什么?
今天我在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)