Если в таблице только один 1, то это по сути операция И. Если есть только один 0, то это операция ИЛИ. Если их обоих два, вы можете сделать это операцией равенства.
Когда вы знаете, какую операцию выбрать для следующего шага, нужно выяснить, какие операнды должны быть отменены. Для И оба операнда должны повернуться к 1, чтобы произвести 1 (1 И 1 = 1), поэтому отрицайте тех, кто иначе бы получил 0. Для ИЛИ наоборот, отрицайте тех, кто получит 1, пытаясь получить 0 в качестве результата (0 ИЛИ 0 = 0)
Для операции равенства следует помнить, что bool
может быть true
или false
, поэтому существует только два значения. Если вы попытаетесь использовать что-то, что не является bool
для логического операнда, тогда будут проблемы. Имея это в виду, когда вы хотите получить равенство, отмените любой из операндов, если изначально они не дают правильный результат (0 == 0 = 1, а также 1 == 1 = 1, если вы меня понимаете).
В вашем конкретном случае у нас есть только одна 1 в таблице, так что это операция AND. Оба операнда равны 0 для этого 1 результата, поэтому мы должны отрицать оба из них:
!A && !B