慣れると2の何乗は幾つって暗算で出来る様になるのでシフト演算するまでもなくなるんですけど、最初にUP_KEY=1、DOWN_KEY=2みたく各ボタンに対応する数値を代入した変数を用意しちゃうってのも手ですね。 みき★さんの説明の通り、演算子の優先順位はシフト演算よりも四則演算の方が先に実行されるので、もしかしたらなんですけど(1 AND B>>3)は動作内容的に(1 AND(B>>3))と言うふうに書きたかったのかも。 まぁ、あれこれ邪推するよりも真相はゼットさんの解説待ちですね。