ブール論理と演算子を理解しようとしています。 この例が見つかりましたが、この式が次のように評価される理由を理解できません。なぜ!(0 || 1 || 0)は0ですか?
セイ、= 0、B = 1、C = 0
Expression Will Evaluate to
val1 = !(a || b || c); !(0 || 1 || 0) = !(1) = 0
私はそれを見るように、VAL1はa
かb
かc
ない、なぜそれがない1に評価?
ブール論理と演算子を理解しようとしています。 この例が見つかりましたが、この式が次のように評価される理由を理解できません。なぜ!(0 || 1 || 0)は0ですか?
セイ、= 0、B = 1、C = 0
Expression Will Evaluate to
val1 = !(a || b || c); !(0 || 1 || 0) = !(1) = 0
私はそれを見るように、VAL1はa
かb
かc
ない、なぜそれがない1に評価?
.... val1とはいえ、これは正しくない
...またはc Bまたはないではないではありません。かっこ内の0 || 1 || 0
が最初に評価されます。この例は正しいです。
のはval1 = 1
1 = !(0 || 1 || 0)
1 = !(1)
を言ってみましょう - それは 1 = 0
をval1のに等しい値のみであるため、 - それはそれを否定し、その後
ない(またはbまたはc)のように、第一または操作を評価それは(aではない)または(bでない)または(cでない)と同じではありません。
実際、(aではない)AND(not b)AND(not c)と同じです。
ORとのOR演算子のいずれかがFALSEの場合、FALSEの結果が返されます。
整数または実数の算術演算と同様に、演算の順序が結果を大きく変える可能性があります。
ステップバイステップで行きましょう。
val1 = !(0 || 1 || 0);
まず、0 || 1
があるため||
手段 '真それらの少なくともいずれかに該当する場合、そうでない場合はfalse'、1に評価し、1 =真、0 =偽ます。それらの少なくとも1つは、今、私たちはval1 = !(1);
を持っている1であるため、
は、だから今、それはここで1 || 0
val1 = !(1 || 0);
で再び、1と評価されます。私はそれを見るよう!
入力の反対を意味するので、= 0 !(1)
、VAL1は、またはc Bかしないではない、なぜそれがない1と評価しますか?
あなたの言うことは、val1 = !0 || !1 || !0
と書かれているからです。それはかっこを持たないので、全く異なっています。括弧は、「括弧内のすべてを最初に評価する」ことを意味します。