Go の "&^" 演算子を理解する
Go では、"&^" 演算子は 2 つのビット単位の AND 演算を実行します。オペランドの後に、結果に対するビット単位の NOT 演算が続きます。つまり、最初のオペランドにビットマスクを適用し、2 番目のオペランドの対応するビットに基づいて特定のビットをクリアします。
C 相当
C では、 「&^」に相当するのは「x & ~y」式です。ここで、「&」はビット単位の AND 演算を実行しますが、「~」はビット単位の NOT 演算子です。
「&^」を使用してビットをクリアする
実行を検討する式「x &^ y」。この式は最初に「x & y」を計算し、「x」と「y」の各ビットに対してビット単位の AND 演算を実行します。結果は、「y」に設定されているすべてのビットが「x」でクリアされる新しいビットマスクです。
例:
x = 0b1101 y = 0b1011 x & y = 0b1001
演算「~y」はそれぞれを否定します。 "y" のビット、結果は次のとおりです:
~y = 0b0100
最後に、"&" 演算子が再度実行され、今回は "x & y" の間で実行されます。および "~y":
(x & y) & ~y = 0b1001 & 0b0100 = 0b1000
"&^" の応用
"&^" 演算子は、次のようなさまざまなシナリオで使用されます。
以上がGo '&^' 演算子は何をするのか、また C とどう違うのか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。