C における | (ビット単位の OR) と || (論理和) の違いは次のとおりです。 1. 演算: || はビット単位の比較を実行します。 2. 優先順位: || は | よりも高い優先順位を持ちます。 3. 目的: | はビット マスキングとシフト演算に使用され、|| は条件が true かどうかの判断などの論理演算に使用されます。
C の | と || の違い
概要
C の | と || は両方とも論理演算子であり、ブール値を操作するために使用されます。これらは構文と操作は似ていますが、論理的な意味と優先順位が異なります。構文
: ビット単位の OR 演算子
: 論理和演算子
操作
): 2 つのブール値があればビットごとに比較します。ビットが true であれば、結果も true になります。
): いずれかのブール値が true の場合、結果は true になります。
優先度
は
| よりも高い優先度を持ちます。これは、
|| 演算子が
| 演算子よりも前に評価されることを意味します。
例
<code class="cpp">bool a = true; bool b = false; // 按位或 bool result1 = a | b; // true,因为 a 的任何一位为 true // 逻辑或 bool result2 = a || b; // true,因为 a 为 true</code>
主な違い
次の表は、 | と || の主な違いをまとめたものです。ビット単位 OR( | ) | 論理 OR( | ) | ||
---|---|---|---|---|---|
ビットごとの比較 | 論理比較 | ||||
低位 | 高位 | ||||
`1 | 0 = 1` | `true | false = true` |
||# を使用する場合
#ビットごとの OR (
論理 OR (
以上がC++ における | と || の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。