- Находить результат операций И, ИЛИ, НЕ и исключающего ИЛИ
- Строить и читать таблицы истинности
- Вычислять значение логического выражения
- Объяснять, как логические элементы используются в компьютере
Эльвин говорит друзьям: «Если в субботу будет хорошая погода и я закончу уроки, пойду на Приморский бульвар». В этой фразе два условия, соединённых словом «и». Компьютер принимает решения точно так же — соединяет простые условия логическими операциями. Только вместо «да» и «нет» он использует 1 и 0.
Высказывания: истина и ложь
Утверждение, о котором можно однозначно сказать, истинно оно или ложно. Истинному высказыванию приписывают значение 1, ложному — 0.
Например, «Баку — столица Азербайджана» — истинное высказывание (1), а «5 > 8» — ложное (0). «Какая сегодня погода?» — вовсе не высказывание: вопрос не может быть ни истинным, ни ложным.
Основные логические операции
- НЕ (инверсия, NOT) меняет значение на противоположное: НЕ 1 = 0, НЕ 0 = 1.
- И (конъюнкция, AND) даёт 1, только когда оба высказывания истинны.
- ИЛИ (дизъюнкция, OR) даёт 1, когда истинно хотя бы одно высказывание.
- Исключающее ИЛИ (XOR) даёт 1, только когда истинно ровно одно высказывание, то есть когда входы различны.
Таблица, которая показывает результат операции для всех возможных случаев, называется таблицей истинности. Для двух входов существует всего 4 случая:
| A | B | A И B | A ИЛИ B | A XOR B |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
| A | НЕ A |
|---|---|
| 0 | 1 |
| 1 | 0 |
Логические элементы
Внутри компьютера логические операции выполняют логические элементы (вентили). Это крошечные электронные схемы из транзисторов: на входы подаются сигналы 0 или 1, а на выходе получается результат. В современном процессоре миллиарды транзисторов, и собранные из них элементы складывают числа, сравнивают их и хранят в памяти.
Кроме основных элементов широко используются их сочетания: И-НЕ (NAND) инвертирует результат И, а ИЛИ-НЕ (NOR) — результат ИЛИ. Интересно, что из одних только элементов И-НЕ можно собрать любую другую логическую схему.
Логические выражения и двоичное сложение
Операции соединяются в логические выражения. Если скобок нет, сначала выполняется НЕ, затем И, а последним — ИЛИ; это похоже на то, как в математике умножение выполняется раньше сложения.
Найди значение выражения (A ИЛИ B) И НЕ C при A = 1, B = 0, C = 1.
Показать решениеСкрыть решение
2) НЕ C = НЕ 1 = 0.
3) 1 И 0 = 0.
Выражение ложно, так как один из входов операции И равен 0.
Нужно сложить два бита A и B. Какие элементы дают цифру суммы (S) и перенос в следующий разряд (C)?
Показать решениеСкрыть решение
0 + 0 = 00₂ → S = 0, C = 0
0 + 1 = 01₂ → S = 1, C = 0
1 + 0 = 01₂ → S = 1, C = 0
1 + 1 = 10₂ → S = 0, C = 1
Столбец S совпадает с таблицей исключающего ИЛИ, а столбец C — с таблицей И.
Значит, S = A XOR B, C = A И B. Соединяя такие схемы, процессор складывает числа любой длины.
print('A B | AND OR XOR')
for a in (0, 1):
for b in (0, 1):
print(f'{a} {b} | {a & b} {a | b} {a ^ b}')▸ Ожидаемый результат
A B | AND OR XOR 0 0 | 0 0 0 0 1 | 0 1 1 1 0 | 0 1 1 1 1 | 1 1 0
& выполняет И, | — ИЛИ, а ^ — исключающее ИЛИ. Программа сама строит всю таблицу истинности.Главное
- Высказывание либо истинно (1), либо ложно (0).
- И даёт 1, только когда оба входа равны 1; ИЛИ — когда хотя бы один вход равен 1.
- НЕ меняет значение на противоположное, а XOR даёт 1, когда входы различны.
- Без скобок порядок такой: НЕ, затем И, затем ИЛИ.
- Логические элементы строятся из транзисторов; XOR и И вместе складывают два бита.
Проверь себя
Вопросов: 10. Каждый правильный ответ приносит XP.