JohnMeacham's entry is some diabolical shit. I've been burned by that same bug, along the lines of:
bool foo = rx&0x0800; // set foo if 11th bit of rx is true
which works in C++ or if you have stdbool, but not if you have 'typedef char bool' which occurs in header files of projects that should know better.