& | ~ ^ << >>
&
Bitwise level AND
|
Bitwise level OR
~
Unary bitwise negation
^
Unary XOR
<<
Shift the number to the left. Fill unused slots with 0.
>>
Shift the number to the right
- for signed values, we perform an arithmetic right shift: fill the unused slots with the most significant bit from before (“fill with 1s”)
- for unsigned values, we perform a logical right shift