ビットごとの XOR 代入演算子 (^=)
更新 : 2007 年 11 月
変数の値と式で指定された値のビットごとに排他的 OR を行い、その結果を変数に代入します。
result ^= expression
引数
result
任意の数値変数を指定します。expression
任意の数式を指定します。
解説
この演算子は、result = result ^ expression と指定する場合とほぼ同じ結果になります。ただし、result は一度しか評価されません。
^= 演算子は、引数を適切なデータ型に変換します。続いて、^= 演算子は 2 つの式の値を 2 進数形式で取り込み、それに対してビットごとに排他的 OR の演算を行います。この演算の結果は次のようになります。
0101 (result)
1100 (expression)
----
1001 (result)
一方の式だけでビットの値が 1 の場合、演算結果のそのビットの値は 1 になります。それ以外の場合は 0 になります。