C # için yeniyim ve bu doğruluk tablosunu sağlamak için XNOR işlecini bulamadım :
aba XNOR b ---------------- TTT TFF FTF FFT
Bunun için özel bir operatör var mı? Yoksa kullanmalıyım! (A ^ B)?
C # için yeniyim ve bu doğruluk tablosunu sağlamak için XNOR işlecini bulamadım :
aba XNOR b ---------------- TTT TFF FTF FFT
Bunun için özel bir operatör var mı? Yoksa kullanmalıyım! (A ^ B)?
Yanıtlar:
XNOR basitçe booleans eşitliğidir; kullanın A == B
.
Bu, kaçırılması kolay bir şeydir, çünkü eşitlik genellikle booleanlara uygulanmaz. Ve mutlaka işe yaramayacağı diller var. Örneğin, C'de sıfır olmayan herhangi bir skaler değer true olarak kabul edilir, bu nedenle iki "true" değeri eşit olmayabilir. Ancak soru etiketlendic #diyelim ki iyi davranmış booleanlar.
Bunun, istediğiniz yerde bitsel işlemlere genelleme olmadığını da unutmayın 0x1234 XNOR 0x5678 == 0xFFFFBBB3
(32 bit varsayarak). Bunun için, diğer operasyonlardan, örneğin ~(A^B)
. (Not: ~
değil !
.)
!
operatör dönüştürmek için kullanılabilir int
' 'uslu' boolelerde için s: !a==!b
.
!!
(bu iki mantıksal "değil" operatörü) 0
veya için herhangi bir skaler değeri normalleştirir 1
.
XOR = A veya B, ancak A & B değil veya hiçbiri (Eşit olamaz [! =])
Bu nedenle XNOR tam tersidir ve == veya === ile kolayca temsil edilebilir.
Bununla birlikte, boolean olmayan vakalar, bu örnekte olduğu gibi sorunlar ortaya çıkarır:
a = 5
b = 1
if (a == b){
...
}
bunun yerine şunu kullanın:
a = 5
b = 1
if((a && b) || (!a && !b)){
...
}
veya
if(!(a || b) && (a && b)){
...
}
ilk örnek false değerini döndürür (5! = 1), ancak ikincisi true değerini döndürür (a [değer?] ve b [değer?] değerleri aynı boole değerini döndürür, true (değer = 0 değil / bir değer vardır )
alt örneği sadece ters (a || b) &&! (a && b) (XOR) kapısıdır
Hayır, kullanmalısın !(A^B)
Sanırım kendi XNOR'unuzu yapmak için operatör aşırı yüklemesini kullanabilirsiniz.
===
XNOR için operatör kullanabilirsiniz . Sadece dönüştürmeniz a
ve b
bool etmeniz gerekiyor .
if (!!a === !!b) {...}
===
operatörü yok
===
zorlayıcı olmayan operatör javascripttir ve !!
bir değerlendirmedeki bir değerden önce gelen çift c # için de geçerli değildir
==
boole işlenenleri olarak bilinir ...