为什么Python` **`用于取幂而不是`^`运算符?

时间:2018-02-22 23:21:32

标签: python bitwise-operators language-design exponentiation

为什么^不在Python中?我知道取幂是**,但究竟是^,为什么不使用该算子呢?

例如2^2=03^2=1

2 个答案:

答案 0 :(得分:6)

^运算符已用于bitwise xor

>>> x = 42; format(x, '08b')
'00101010'
>>> y = 137; format(y, '08b')
'10001001'
>>> z = x ^ y; format(z, '08b')
'10100011'

这使得旧的Fortran-style **运算符无法求幂。

>>> base = 5
>>> exp = 2
>>> base ** exp
25

答案 1 :(得分:1)

python中的“^”符号是一个按位的异或(XOR)运算符。如果其中一个输入或另一个为真,则“或”门为真。当且仅当单个输入为真时,XOR门才为真。 00和11都是假的。 01和10都是真的。逐位XOR可用于检查有多少位不同。

例如,

  1. 2 ^ 2 = 10
    • ^ 10
      = 00
      = 0
  2. 3 ^ 2 = 11
    • ^ 10
      = 01
      = 1