Шешімі: Минимальное число в битовой логике
Обозначим через $m \mathbin{\&} n$ поразрядную конъюнкцию неотрицательных целых чисел $m$ и $n$. Так, например, $14 \mathbin{\&} 5 = 1110_2 \mathbin{\&} 0101_2 = 0100_2 = 4$. Для какого наименьшего неотрицательного целого числа $A$ логическое выражение $((x \mathbin{\&} 52 \ne 0) \land (x \mathbin{\&} 48 = 0)) \to \neg(x \mathbin{\&} A = 0)$ истинно при любом неотрицательном целом значении переменной $x$?
Шешім по шагам
3 қадамЧтобы импликация была невыполнена, левая часть должна быть истинной, а правая — ложной. Поэтому рассмотрим числа $x$, для которых одновременно выполняются условия $x \mathbin{\&} 52 \ne 0$ и $x \mathbin{\&} 48 = 0$.
Представим числа в двоичной системе: $52 = 110100_2$, $48 = 110000_2$. Условие $x \mathbin{\&} 48 = 0$ означает, что в $x$ отсутствуют разряды $32$ и $16$. Тогда условие $x \mathbin{\&} 52 \ne 0$ может выполняться только за счёт разряда $4$.
$$x \mathbin{\&} 4 = 4$$Следовательно, для любого $x$, при котором левая часть истинна, число $x$ имеет общую единицу с числом $4$. Минимальное подходящее значение $A$ равно $4$.
$$x \mathbin{\&} 4 \ne 0$$Где здесь ошибаются
Не учитывать условие $x \mathbin{\&} 48 = 0$ и считать, что достаточно взять всю маску $52$.
Выбрать число $A$, содержащее лишние установленные биты, вместо наименьшего возможного значения.
Перепутать условие $x \mathbin{\&} A = 0$ с условием $x \mathbin{&} A \ne 0$.