Eu sou novo em C # e não consegui encontrar o operador XNOR para fornecer esta tabela de verdade:
aba XNOR b ---------------- TTT TFF FTF FFT
Existe um operador específico para isso? Ou eu preciso usar! (A ^ B)?
c#
boolean
boolean-operations
trailmax
fonte
fonte
==
operandos booleanos ...Respostas:
XNOR é simplesmente igualdade em booleanos; use
A == B
.É uma coisa fácil de perder, já que a igualdade não é comumente aplicada aos booleanos. E há idiomas em que isso não necessariamente funciona. Por exemplo, em C, qualquer valor escalar diferente de zero é tratado como verdadeiro, portanto, dois valores "verdadeiros" podem ser desiguais. Mas a pergunta foi marcadac #, que tem, digamos, booleanos bem comportados.
Observe também que isso não generaliza para operações bit a bit, onde você deseja
0x1234 XNOR 0x5678 == 0xFFFFBBB3
(assumindo 32 bits). Para isso, você precisa criar a partir de outras operações, como~(A^B)
. (Nota:~
não!
.)fonte
!
operador pode ser usada para converterint
's para booleanos 'bem comportadas':!a==!b
.!!
(são dois operadores lógicos "não") normaliza qualquer valor escalar para0
ou1
.XOR = A ou B, mas não A & B ou nenhum (Não pode ser igual a [! =])
XNOR é, portanto, o oposto oposto e pode ser facilmente representado por == ou ===.
No entanto, casos não booleanos apresentam problemas, como neste exemplo:
em vez disso, use o seguinte:
ou
o primeiro exemplo retornará false (5! = 1), mas o segundo retornará true (os valores de a [value?] eb [value?] retornam o mesmo booleano, true (value = not 0 / existe um valor )
o exemplo alt é apenas o portão invertido (a || b) &&! (a && b) (XOR)
fonte
Não, você precisa usar
!(A^B)
Embora eu suponha que você possa usar sobrecarga de operador para criar seu próprio XNOR.
fonte
Você pode usar o
===
operador para o XNOR. Só você precisa convertera
eb
bool.fonte
===
operador===
o operador não-coercitiva é javascript ea dupla!!
antes de um valor em uma avaliação não é válido no c # quer