Komisch, bei mir funktioniert es auch mit dem Vergleichsoperator '=='.
'&' Ist ein Bitoperator und man kann damit kontrollieren ob bestimmte Bits gesetzt sind, oder eben nicht, es läuft also auf dem Binärsystem.
Weitere Infos:
8.5 Bit-Operatoren

€: Ich glaub ich weiß einen Grund warum es bei dir nicht Funktioniert. Du Vergleichst unsigned char mit einem einfachem Zahlenwert. Kann sein das er es dann nach signed char umwandelt, und er somit eine andere Zahl erählt. Darf man fragen welchen Compiler du benutzt?

€²: Wirst du wohl aufhören immer kurz vor mir zu posten, backbone? [-(