Soy nuevo en C # y no pude encontrar el operador XNOR para proporcionar esta tabla de verdad:
aba XNOR b ---------------- TTT TFF FTF FFT
¿Hay un operador específico para esto? ¿O necesito usar! (A ^ B)?
c#
boolean
boolean-operations
trailmax
fuente
fuente
==
operandos booleanos ...Respuestas:
XNOR es simplemente igualdad en booleanos; uso
A == B
.Esto es algo fácil de perder, ya que la igualdad no se aplica comúnmente a los booleanos. Y hay idiomas donde no necesariamente funcionará. Por ejemplo, en C, cualquier valor escalar distinto de cero se trata como verdadero, por lo que dos valores "verdaderos" pueden ser desiguales. Pero la pregunta fue etiquetadaC#, que tiene, digamos, booleanos de buen comportamiento.
Tenga en cuenta también que esto no se generaliza a las operaciones bit a bit, donde lo desee
0x1234 XNOR 0x5678 == 0xFFFFBBB3
(suponiendo 32 bits). Para eso, necesitas construir desde otras operaciones, como~(A^B)
. (Nota:~
no!
)fuente
!
el operador puede ser usado para convertirint
'S para booleanos 'buen comportamiento':!a==!b
.!!
(que es dos "no" operadores lógicos) normaliza cualquier valor escalar a0
o1
.XOR = A o B, pero no A y B o ninguno (No puede ser igual [! =])
XNOR es, por lo tanto, el opuesto exacto, y se puede representar fácilmente por == o ===.
Sin embargo, los casos no booleanos presentan problemas, como en este ejemplo:
en su lugar, use esto:
o
el primer ejemplo devolverá falso (5! = 1), pero el segundo devolverá verdadero (los valores de a [valor?] yb [valor?] devuelven el mismo valor booleano, verdadero (valor = no 0 / hay un valor )
el ejemplo alternativo es solo la puerta invertida (a || b) &&! (a && b) (XOR)
fuente
No, necesitas usar
!(A^B)
Aunque supongo que podría usar la sobrecarga del operador para hacer su propio XNOR.
fuente
Puede usar el
===
operador para XNOR. Solo necesitas convertira
yb
bool.fuente
===
operador===
el operador no coercitivo es javascript y el doble!!
antes de un valor en una evaluación tampoco es válido en c #