それですが、B AND 4と書くと 返す値が1ではなく「4」を返すようになります。 つまり移動量が4になり、反対側は8となる訳です。 なので!=0で無理に1を返すようにしてる、と。 私も同じ事で悩んだ事がありますので。