The C99 _Bool type and the C++ bool type have an advantage over other
integral types: they only have two distinct values. Expressions like
'b1 == b2', 'b1 << 3' and 'b1 ^ b2' behave like you would expect a
boolean type to behave, rather than having the problems that result from
using an integral type with more than two distinct values.