Posted at

ビット演算 [4]:特定のビットを反転する

More than 5 years have passed since last update.

排他的論理和(^)は、ビットの値が同じ場合は0、異なる場合は1を返す。

x ^ 1 = ~x, x ^ 0 = x なので、見方を変えると、0ならば反転、0ならば元の値のままとなる。

従って、特定のビットを反転したい場合は、そのビットを立てたマスクと排他的論理和(^)演算を行うといいぞ。

例えば、変数xの下位4ビットを反転したい場合は、以下の様に記述する。


x ^= 0x0f;