bitwise operations
& | ~ ^ << >>
& 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