>>右ビット単位のシフトです。それはビットを取り、それらを右にn桁1シフトします。たとえば、35 >> 2次のことを調べてみましょう。
35 = 100011 shift two places
001000 = 8
そして確かに、35 >> 2 == 8。
|ビットごとのORです。各オペランドの各ビットを取り、それらをOR演算します。一種の2進加算として想像することはできますが、上と下の両方がである場合は実行しません1。たとえば、ここにあります5 | 3:
5 = 101
3 = 011
| -----
111 = 7
そして確かに、5 | 3 == 7。
最後に&、ビット単位のANDです。各オペランドの各ビットを受け取ります。ただし、一方のビットまたは他方のビットのいずれかが1の場合は1を与える代わりに、一方のビットともう一方のビットが両方とも1の場合は1を与えます。たとえば、ここにあります5 & 3:
5 = 101
3 = 011
& -----
001 = 1
やってみよう; 5 & 3 == 1。
他に注意したいの<<は、左ビット単位のシフトである、と^XOR(両方のビットが同じ場合は0、異なる場合は1)です。
1実際には、32を法とするnです。1 >> 32は1です。理由はわかりません。