1
1 0 0
0 1 1
1 1 1
(A != 0 && B != 1)
A B res
0 0 0
1 0 1
0 1 0
1 1 0
думаю многим приходится конвертить одно в другое, чтобы код выглядел компактнее. часто интуитивно понятно как сделать выражения эквивалентными или полностью инвертировать. а где почитать правила/способы «упрощенного умножения сложения» и подобных таких вещей чтобы не полагаться на интуицию?
Это дискретная математика
Матлогика, эквивалентные преобразования.
лучше, чтобы код был понятным и читаемым, а будешь умничать, то те, кто будет читать и сопровождать твой код, будут тебя хаять
именно по этим соображениям отказался от конструкций типа if(!dev_type) { ... } и переписал тонну легаси на if(dev_type == DEV_TYPE_UNKNOWN) { ... }
это верно. сам всецело за читабельность. но конечное решение за мной - да и смысл прямой познавать такие вещи есть, ибо встречается в чужих сырцах. я не могу, пока, выдержать таких конструкций.. if(A) ничего else работа.. но буду тренироваться)
Можно почитать про методы оптимизации (минимизации) булевых выражений.
Так глубоко не хотелось бы..
Булева алгебра жи, де Морган, Шефер, Пирс и ежи с ними)
Карно, Жегалкин. Отличные ребята 👍😅
Обсуждают сегодня