Bit operations: Clear a bit
Problem: given int i, set bit n to 0
    bn b0
i 0000 0000 0000 0000
0000
0000 0000 0010
bit n
How can we make sure this bit is 0 (and not affect any other bits)?
We can use & operator with a "mask":
mask 1111 1111 1111 1111
1101
1111 1111 1111
i &= mask;
What is the problem with this?
Answer:
i &= ~(1 << n);  /* idiom */
Shift 1 bit n places to the left
Flip bits to get all 1's except 0 in bit n
Apply & operator to clear bit n