> x & 0xF == 0xFThat comes from `&` and `|` being logical operators in B. Quoth Dennis Ritchie
> has only 1 meaningful interpretation; C chooses the other!
> The error comes (probably) from treating & as close to the logical
> operators like && whereas in fact it is more kin to arithmetic operators
> like +.
(http://cm.bell-labs.com/who/dmr/chist.html in the section "Neonatal C"):
> to make the conversion less painful, we decided to keep the precedence of
> the & operator the same relative to ==, and merely split the precedence of
> && slightly from &. Today, it seems that it would have been preferable to
> move the relative precedences of & and ==, and thereby simplify a common C
> idiom