ビット演算子

←これでビット演算の実験が可能です。

AND演算子 → &

オペランドの各ビットでANDします。
オペランドで共に1になっているbitだけ1になり、他のビットは0になります。
特定のビットを0にできます。→特定の範囲を取り出すことになります。

OR 演算→ |

オペランドの各ビッでORします。
オペランドでどちらかが1になっているbitを1にします。他のビットは0です。
この演算で特定のビットを1にできます。

XOR 演算→ ^

オペランドの各ビットで、一致するビットが0になります。他のビットは1になる演算です。
特定のビットを反転させることができます。

NOT 演算(単項演算子)→ ~ 

ビットを反転させることができます。
 ++ -- sizeof ! などと同じ上から2番目の優先順位です。
(d1の全てが反転し、d1が32ビット の場合、FFFFAAAAの表示になります)

右シフト 演算→ >>   

左オペランドを、右オペランドの数だけ右にシフトします。
論理シフトか算術シフトかはCPU依存です。 それによって、空いた右に1または0がセットされます。
(優先順位は比較演算より高いことに注意ください。)

左シフト 演算→ <<

左オペランドを、右オペランドの数だけ 左にシフトします。
(シフトで空いたビットは0が設定されます)