Bitwise operators affect ALL of a number's bits!
If you haven't done so already, read the section in the Programming FAQ that covers bitwise operations. When you perform a bitwise operation, ALL OF THE BITS in the number are affected.
In C++, a bool type is somewhat abstract. Like jlou said, the "value" of a bool is supposed to be "true or "false"... not a numerical value! In fact, true is probably stored as a binary one, and false as binary zero. The C++ language standard states: "An rvalue of type bool can be converted to an rvalue of type int, with false becoming zero and true becoming one."
The computer hardware cannot read a single bit. If you are running a 32-bit machine, each physical memory address holds a 32-bit value. If you want to know the value of a particular bit at a particular address, you have to read the whole 32-bit word, and then use the bitwise operators to "mask-out" the bits you're not interested in. This is (usually) the whole point to bitwise operators... to manipulate individual bits that can't be individually accessed.
Bitwise operators are mostly used for low-level (hardware) programming, where one bit represents one "thing" or one condition, like the state of an LED or a switch.
However, programming students are usually introduced to bitwise operators as an encryption technique.