1. ホーム
  2. python

[解決済み] キャレット(^)演算子とは何ですか?

2022-06-04 16:48:08

質問

今日、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を基準にしているようなので、ある種のバイト演算なのでしょうか? 私はそれが浮動小数点数に対して奇妙な動作をする以外に、この検索サイトについて多くを見つけることができないようです、誰かこの演算子が何をするかのリンクを持っていますか、またはここでそれを説明できますか?

どのように解決するのですか?

これは、ビット単位の XOR (排他的論理和)です。

と評価されます。 True と評価されます。 True であるとき、もう一方は False ).

実演するために

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

自分の例の一つを説明するため。

>>> 8^3
11

このように考えてください。

1000 # 8 (バイナリ)
0011 # 3 (2進数)
---- # APPLY XOR ('縦')
1011 # 結果 = 11 (バイナリ)