私はC#に新たなんだと、この真理値表を提供するために、XNOR演算子を見つけることができませんでした:C#にXNOR(論理バイコンディション)演算子がありますか?
a b a XNOR b ---------------- T T T T F F F T F F F T
は、このための具体的な作業はありますか?または、私は(A^B)を使用する必要がありますか?
私はC#に新たなんだと、この真理値表を提供するために、XNOR演算子を見つけることができませんでした:C#にXNOR(論理バイコンディション)演算子がありますか?
a b a XNOR b ---------------- T T T T F F F T F F F T
は、このための具体的な作業はありますか?または、私は(A^B)を使用する必要がありますか?
XNORはブール値で単純に等価です。 A == B
を使用してください。
これは、等価性がブール値に一般的に適用されないため、見逃しやすいです。また、必ずしも機能しない言語もあります。たとえば、Cでは、ゼロ以外のスカラー値はtrueとして扱われるため、2つの「真の」値は等しくない可能性があります。しかし、質問にはc#というタグが付けられています。これは、よく振る舞うブール値です。
0x1234 XNOR 0x5678 == 0xFFFFBBB3
(32ビットと仮定)が必要なビット単位の演算には一般化されません。そのためには、~(A^B)
のような他の操作から構築する必要があります。 (注:~
、ない!
)
もちろんです!私は今のように愚かな気がする - ) – trailmax
@ trailmax:愚かな気分にする必要はなく、見逃しやすいのです。 –
Cでは、 '!'演算子を使って 'int''を' well-behaved'ブール値に変換することができます: '!a ==!b'。 –
いいえ、あなたは私はあなたがあなた自身のXNORを作るために演算子オーバーロードを使用することができたとしますが!(A^B)
を使用する必要があります。
XOR = AまたはBが、未& Bまたはどちらも(同じにすることはできません[=!])
XNORは、したがって、正確なoppoisteあり、かつ容易に行うことができ==または===で表されます。
しかしながら、非ブールの場合、この例のように存在する問題:代わり
a = 5
b = 1
if (a == b){
...
}
、これを使用する:
a = 5
b = 1
if((a && b) || (!a && !b)){
...
}
又は
if(!(a || b) && (a && b)){
...
}
最初の例では、返されfalse(5!= 1)が返されますが、2番目の引数はtrue(a [value?]とb [value?]の値は同じbooleanを返します、true(値= 0でない/値があります)
altの例は逆です(a || B)& &!(& & B)(XOR)ゲート
この演算子は、より一般的に '' ==ためのブールオペランドとして知られている... –
@Magnus Hoff氏:素敵な非常に嬉しいポイント! – sll
「木の木が見えない」というフレーズは、ここでは非常に適切だと思います。 )私たちは一度か二度ここにいたので投票する; – spender