42

私はPythonを学んでいますが、少し混乱しています。オンラインインストラクターは、私が特定の数に上げようとしているとき、^ではなく**演算子を使用するように私に言います。例:

print 8^3

11の出力を提供します。しかし、私が探しているもの(私が言われている)は、より似ています:512の正解を与える8 ** 3を印刷します。しかし、なぜですか?

誰かが私にこれを説明できますか?正解なので、8 ^ 3が512に等しくないのはなぜですか?どのような場合に11(8 ^ 3の結果)になりますか?

SOを検索しようとしましたが、除算時にモジュラスを取得することに関する情報しか表示されません。

4

3 に答える 3

82

演算子^ビット演算子であり、ビット単位の排他的論理和を実行します。

電力演算子**、のよう8**3にに等しくなり512ます。

于 2012-08-20T19:35:35.457 に答える
16

記号はさまざまな演算子を表します。

^ビット単位の排他的論理和または(XORを表します。

出力の各ビットは、yのビットが0の場合、xの対応するビットと同じであり、yのビットが1の場合、xのビットの補数です。

**電力オペレーターを表します。それが言語の構造化の方法です。

于 2012-08-20T19:33:14.143 に答える
0

^Pythonで「指数」を意味するわけではありません。「ビット単位のXOR」を意味します。ドキュメントを参照してください。

于 2012-08-20T19:34:17.817 に答える