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