10

私が理解していることから、 & 演算子は && 演算子に似ていますが、 && は最初の結果が true の場合にのみ 2 番目をチェックし、& は最初の結果に関係なく両方をチェックします。基本的に && は、時間と電力を少し節約するだけです。

もしそうなら、このコードはどのように機能しますか?

int l = 0;
if ((l & 8) != 0 && (l & 4) == 0){ do something}

(l & 8)とは何をし(l & 4)ますか? この場合、 & は何をしますか?

4

1 に答える 1

17

& と && は2つの異なる演算子ですが、違いはあなたが説明したものではありません。

& は、2 つの整数のビットごとの AND を実行し、2 つのソース整数の対応する両方のビットが両方とも 1 に設定されている場合、ビットが 1 に設定されている 3 番目の整数を生成します。それ以外の場合は 0。

&& は 2 つのブール値にのみ適用され、両方の入力ブール値が true の場合に true になる 3 番目のブール値を返します。それ以外の場合は false。

于 2013-12-17T23:23:25.377 に答える