Bit Manipulation
AND
0 0 | 0
0 1 | 0
1 0 | 0
1 1 | 1
OR
0 0 | 0
0 1 | 1
1 0 | 1
1 1 | 1
XOR
0 0 | 0
0 1 | 1
1 0 | 1
1 1 | 0
AND &
OR |
NOT ~
XOR ^
Left shift <<
Right shift >>
(i >> n) & 1 # get an bit