IF (B AND 16)==16 THENを押されるとして判定しているなら、IF (B AND 16)==0 THEN が押されないの方が素直かも?って思いますね。
省略して、IF (B AND 16) THENとしているなら、IF !(B AND 16) THENの方が書きやすいというのはあると思いますが…。
あとはビット演算がわかるなら、IF (B AND 16+32)==16 THENもAが押されてBが押されてない状態って事になりますね。
もちろん足し算のところは合計して48でもいいですが、合計しないで書いた方が意味はわかりやすくなるという利点はあったりします。
IF (B AND 16)==16 && (B AND 32)==0 THEN とか
IF (B AND 16)==16 && !(B AND 32)==32 THEN とか
かな?
ANDはビット演算、分類的には+-*/とかMODとかの仲間だと思った方がいいです
TRUEとFALSEを適切に処理する仕組みにはなってません
たとえば、1も2もTRUEと判別されますけど1 AND 2は0でFALSEになってしまいますし、違いを理解してきちんと使い分けないと場合によってはバグります