初心者の質問です。式 A f B の値を計算する方法、ここで f - 二項関数 OR または AND?
8 に答える
条件演算子 && と || には違いがあります。およびブール演算子 & および |。主に、優先順位 (どの演算子が最初に評価されるか) と && および || の違いです。「逃げている」。これは、次のようなシーケンスであることを意味します...
cond1 && cond2 && cond3
cond1 が false の場合、cond2 と cond3 のどちらも評価されません。これは、その値が何であれ、式が true になることはないとコードが正しく想定しているためです。同じく...
cond1 || cond2 || cond3
cond1 が true の場合、cond2 も cond3 も評価されません。これは、その値が何であれ、式が true でなければならないためです。
ビット単位の対応する & および | 逃げていません。
それが役立つことを願っています。
論理 OR は||
、論理 AND は&&
です。否定 NOT が必要な場合は、式の前に!
.
例:
X = (A && B) || C || !D;
次に、A と B のいずれかが真の場合、または C が真の場合、または D が真でない (つまり、偽) 場合、X は真になります。
ビットごとの AND/OR/NOT が必要な場合は&
、|
とを使用し~
ます。ただし、ブール値/真値を扱っている場合は、それらを使用したくありません。たとえば、ビット単位の操作が機能する方法が原因で、短絡評価は提供されません。
if(A == "haha" && B == "hihi") {
//hahahihi?
}
if(A == "haha" || B != "hihi") {
//hahahihi!?
}
ビット単位の操作に興味がある場合は、ここで簡単なチュートリアルをご覧ください。 amp-not.aspx .bitwise 操作は、上記の例と同じ操作を実行します。バイナリ表現でのみ機能します (操作は値の個々のビットに適用されます)。
論理演算の答えが必要な場合は、既に与えられています。
これがあなたの質問に答えるかどうかはわかりませんが、例えば:
if (A || B)
{
Console.WriteLine("Or");
}
if (A && B)
{
Console.WriteLine("And");
}
AND には「&&」を使用し、「||」を使用します OR の例:
bool A;
bool B;
bool resultOfAnd = A && B; // Returns the result of an AND
bool resultOfOr = A || B; // Returns the result of an OR
上記の多くの答え、私は別の方法を試します:
ビット単位の操作を探している場合は、次のようなマークの 1 つだけを使用します。
3 & 1 //==1 - そして 4 | 1 //==5 - または
&& 両方のオペランドが true である場合にのみ true を返す操作です。
bool and(bool b1, bool b2)]
{
if(b1==true)
{
if(b2==true)
return true;
}
return false;
}
|| それは操作であり、一方または両方のオペランドが true の場合に true を返します。
bool or(bool b1,bool b2)
{
if(b1==true)
return true;
if(b2==true)
return true;
return false;
}
あなたが書く場合
y=45&&34//45 binary 101101, 35 binary 100010
その結果、あなたは持っています
y=32// in binary 100000
したがって、上で書いた は、すべてのビットのペアに対して使用されます。