ビット演算子とブール演算子: 「&」と「&&」、「|」と「||」の違いは何ですか?

DDD
リリース: 2024-11-18 07:22:02
オリジナル
392 人が閲覧しました

Bitwise vs. Boolean Operators: What's the Difference Between `&` vs. `&&` and `|` vs. `||`?

ビット演算子とブール演算子の理解: & 対 && および | vs. ||

プログラミングでは、記号 & と | && と || はビット単位の演算子を表します。ブール論理演算子を表します。これらは似ているように見えますが、その機能には決定的な違いがあります。

ビット単位演算子: && および |

ビット単位演算子は、2 進数内の個々のビットに対して演算を実行します。例:

int a = 6; // Binary: 110
int b = 4; // Binary: 100

int c = a & b; // Bitwise AND
int d = a | b; // Bitwise OR
ログイン後にコピー

この場合、取得される値は次のとおりです。

  • c = 4 (バイナリ: 100)
  • d = 6 (バイナリ: 110)

ビットごとの AND を実行する場合、オペランドの各ビット位置が比較されます。対応するビットが両方とも 1 の場合、対応する位置の結果ビットは 1 になります。逆に、ビットごとの OR では、オペランド内の少なくとも 1 つの対応するビットが 1 の場合、結果のビットは 1 になります。それ以外の場合は、0 です。

ブール論理演算子: && および ||

ブール論理演算子は、ブール値 (true または false) を処理します。これらはビット演算子と同様のルールに従いますが、

  • && (AND) は両方のオペランドが true の場合にのみ true を返します。
  • || (OR) は、少なくとも 1 つのオペランドが true の場合に true を返します。

ビット単位の演算子とは異なり、ブール論理演算子は短絡的です。つまり、結果が先に決定できる場合、すべてのオペランドは評価されません。これにより、null 値を評価するときに例外が発生するのを防ぎます。

以上がビット演算子とブール演算子: 「&」と「&&」、「|」と「||」の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート