&&は論理演算子でANDはビット演算子なので、条件の結果に、0と1以外の値をとる場合には、注意が必要です。論理演算子の場合、0を偽(FALSE)、0以外を真(TRUE)として、論理演算を行いますが、ビット演算子は、ビット毎に論理演算を行います。