As being an embedded software engineer i would really suggest you this tricks. ..! In many application you need to deal with this bit wise operation. Sometimes you know this all stuff very well but still some time it takes time to construct this logic or some time you got some mistakes in it. so i suggest you to paste this on your desk until you paste this in your mind..!
To set a bit
Use the bitwise OR operator (|) to set a bit.
number |= 1 << x;
That will set bit x.
To clear a bit
Use the bitwise AND operator (&) to clear a bit.
number &= ~(1 << x);
That will clear bit x. You must invert the bit string with the bitwise NOT operator (~), then AND it.
To toggle a bit
The XOR operator (^) can be used to toggle a bit.
number ^= 1 << x;
That will toggle bit x.
To check state of a bit
To check a bit, AND it with the bit you want to check:
bit = number & (1 << x);
That will put the value of bit x into the variable bit.
NOTE : here x is the position of bit starting from 0 to LSB.