Я новичок в C # и не могу найти оператор XNOR, чтобы предоставить эту таблицу истинности:
аба XNOR б ---------------- ТТТ ПТФ ФТФ FFT
Есть ли конкретный оператор для этого? Или мне нужно использовать! (A ^ B)?
c#
boolean
boolean-operations
trailmax
источник
источник
==
булевы операнды ...Ответы:
XNOR - это просто равенство по логическим значениям; использовать
A == B
.Это легко упустить, поскольку равенство обычно не применяется к логическим значениям. И есть языки, где это не обязательно будет работать. Например, в C любое ненулевое скалярное значение считается истинным, поэтому два «истинных» значения могут быть неравными. Но вопрос был помеченC #, который, скажем так, хорошо ведет себя булевы.
Также обратите внимание, что это не распространяется на побитовые операции, где вы хотите
0x1234 XNOR 0x5678 == 0xFFFFBBB3
(при условии 32 бит). Для этого вам необходимо создать другие операции, например~(A^B)
. (Примечание:~
нет!
.)источник
!
оператор может быть использовано для преобразованияint
«с до„хорошо себя“булева:!a==!b
.!!
(это два логических оператора «не») нормализует любое скалярное значение для0
или1
.XOR = A или B, но не A & B или ни то, ни другое (не может быть равным [! =]).
Следовательно, XNOR является точной противоположностью и может быть легко представлен как == или ===.
Тем не менее, небулевые случаи представляют проблемы, как в этом примере:
вместо этого используйте это:
или
первый пример вернет false (5! = 1), но второй вернет true (значения a [value?] и b [value?] возвращают одно и то же логическое значение, true (значение = не 0 / есть значение) )
альтернативный пример - просто перевернутые (a || b) &&! (a && b) (XOR) ворота
источник
Нет, вам нужно использовать
!(A^B)
Хотя я полагаю, вы могли бы использовать перегрузку операторов для создания собственного XNOR.
источник
Вы можете использовать
===
оператор для XNOR. Просто нужно конвертироватьa
иb
кипеть.источник
===
оператора===
не принудительный оператор является javascript, и двойное число!!
перед значением в оценке также недопустимо в c #