Вы можете попытаться нарисовать таблицы истинности для XOR , И и, ИЛИ
a b a^b
0 0 0
0 1 1
1 0 1
1 1 0
a b a|b
0 0 0
0 1 1
1 0 1
1 1 1
a b a&b
0 0 0
0 1 0
1 0 0
1 1 1
, затем найдите, как используйте |
и &
для построения
a|b
, чтобы все три первых строки были правильными, a&b
- для другой строки. Если мы отрицаем это, это может быть использовано для маскировки нужных строк! Таким образом, мы можем сформулировать xor следующим образом:
(a или b) , но не когда (a и b)
В булевой алгебре нет , но , поэтому она становится и , что приводит к этому:
(a|b)&~(a&b)
Редактировать: Указано Я отвечаю не на тот вопрос, используйте закон Деморгана для построения или
~(~a & ~b)
дает ответ, равный
~(~a&~b)&~(a&b)