今日、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 に基づいているようなので、何らかのバイト操作だと思います。サイトを検索しても、浮動小数点数に対して奇妙な動作をするということ以外、これについてあまり情報が見つからないのですが、この演算子が何をするのかについてリンクを持っている人はいますか、またはここで説明できますか?
ベストアンサー1
それはビット単位です排他的論理和(排他的論理和)。
True
引数が異なる場合(一方がTrue
、もう一方が)に限り、と評価されますFalse
。
実証するには:
>>> 0^0
0
>>> 1^1
0
>>> 1^0
1
>>> 0^1
1
あなた自身の例の 1 つを説明すると、次のようになります。
>>> 8^3
11
次のように考えてみましょう。
1000 # 8 (バイナリ) 0011 # 3 (バイナリ) ---- # XOR を適用 ('垂直') 1011 # 結果 = 11 (バイナリ)