As much as I love bit manipulation, I have to say that most (not all) of them don't provide any real performance gain for C/C++ code (only some geeky satisfaction of writing difficult to interpret code!)..
e.g. with any decent compiler...
* if ((x & 1) == 0) performs same as, if ((x % 2) == 0)
* if (x & (1<<n)) same as, if (x% (pow(2,n)))
so on.. on the other hand, i find bit operations really handy when the variables in question are to be treated as separate bits than normal base-10..