Логические вентили И, ИЛИ, НЕ
Если нули и единицы — это алфавит компьютера, то логические вентили (или гейты) — это его правила грамматики. Вентиль — это крошечная электронная схема, которая принимает один или несколько сигналов на вход и выдаёт результат на выход по строгим правилам.
Базовых вентилей всего три — НЕ, И и ИЛИ. Запомни их таблицы истинности, ведь из этих трёх правил собирается любая, даже самая сложная цифровая схема.
Вентиль НЕ (NOT) — электронный бунтарь
НЕ всегда делает наоборот. Подаёшь на него 1 (ток есть) — он выдаёт 0 (тока нет). Подаёшь 0 — выдаёт 1. В схемотехнике его часто называют инвертором: он «переворачивает» сигнал.
Таблица истинности вентиля НЕ:
| Вход | Выход |
|---|---|
| 0 | 1 |
| 1 | 0 |
Вентиль И (AND) — строгий охранник
И — это строгий охранник, которому нужны все пропуска сразу. Он выдаст единицу на выходе только в том случае, если на всех его входах будут единицы. Если хотя бы на одном входе ноль — на выходе тоже будет ноль.
Для двух входов это выглядит так: 00 → 0, 01 → 0, 10 → 0, и только 11 → 1.
Вентиль ИЛИ (OR) — добрый вахтёр
ИЛИ — это добрый вахтёр. Ему достаточно, чтобы хотя бы одно условие было выполнено. Он выдаст единицу, если ток есть на первом входе, на втором или на обоих сразу. Ноль будет только в том случае, если ни на один вход ничего не пришло.
Для двух входов: 00 → 0, 01 → 1, 10 → 1, 11 → 1.
Сводная таблица: НЕ, И и ИЛИ
Соберём все три вентиля в одну таблицу:
| A | B | НЕ A | A И B | A ИЛИ B |
|---|---|---|---|---|
| 0 | 0 | 1 | 0 | 0 |
| 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 0 | 0 | 1 |
| 1 | 1 | 0 | 1 | 1 |
Видишь закономерность? И и ИЛИ совпадают почти везде и расходятся только в одной строке: при входах 01 и 10 И выдаёт 0, а ИЛИ — 1. И — строже, ИЛИ — щедрее.
NAND — универсальный вентиль
В игре ты не начинаешь с готовых И, ИЛИ и НЕ. В самом начале у тебя есть только провод и вентиль NAND — «НЕ-И», который выдаёт 0 только когда оба входа равны 1. NAND замечателен тем, что из него можно собрать любой другой вентиль:
• НЕ: соедини оба входа NAND вместе — на уровне 1.2 ты соберёшь инвертор именно так.
• И: возьми NAND и поставь после него инвертор (NAND + НЕ) — так строится уровень 1.3.
• ИЛИ: поставь инверторы на оба входа NAND — об этом рассказывают законы де Моргана, а уровень 1.4 проверяет это на практике.
Примеры из жизни: двери, банкомат и сигнализация
Представь автоматическую дверь в супермаркете. Она должна открыться, если сработал датчик движения ИЛИ нажата кнопка. Пусть A = датчик движения, B = кнопка. Если A = 1 (кто-то подошёл), а B = 0 (кнопку не трогали), вентиль ИЛИ выдаёт 1 — дверь открывается.
А вот банкомат выдаст деньги, только если вставлена карта И введён правильный ПИН-код. Если A = 1 (карта на месте), но B = 0 (ПИН неверный), вентиль И выдаёт 0 — денег нет.
Инвертор НЕ пригодится для сигнализации: она должна сработать, когда дверь не закрыта. Дверь закрыта (сигнал 1) → НЕ выдаёт 0 → тревога молчит. Дверь открыта (сигнал 0) → НЕ выдаёт 1 → сигнализация включается. Из этих трёх операций строится любая «умная» электроника вокруг нас.
Частые ошибки
• Путать И и ИЛИ: И требует все единицы на входах, ИЛИ — хотя бы одну.
• Забывать, что НЕ на входе 0 выдаёт 1, а не 0.
• Считать, что 11 → 0 для ИЛИ: нет, ИЛИ выдаёт 1 и на двух единицах тоже.
Проверить любую комбинацию вентилей можно в генераторе таблиц истинности: вставьте формулу — и получите полную таблицу со всеми наборами входов.
Проверь себя
Что делает вентиль НЕ (NOT)?
Меняет сигнал на противоположный: 0 становится 1, а 1 становится 0.
Что вернёт вентиль И (AND) при входах 1 и 0?
0. И даёт 1 только когда оба входа равны 1.
Почему NAND называют универсальным вентилем?
Из одних только NAND можно собрать любой другой вентиль — НЕ, И, ИЛИ — и вообще любую схему.
Резюме
1. НЕ — инвертор: 0 → 1, 1 → 0.
2. И выдаёт 1 только при всех единицах на входах.
3. ИЛИ выдаёт 1, если есть хотя бы одна единица на входе.
4. Из универсального NAND собираются НЕ, И и ИЛИ.
5. Вентили — это грамматика компьютера: из простых правил рождается сложная логика.
На уровне 1.2–1.4 тебе предстоит собрать все три вентиля из одного NAND: на уровне 1.2 — инвертор НЕ (соединив оба входа NAND), на уровне 1.3 — вентиль И (NAND + инвертор), а на уровне 1.4 — вентиль ИЛИ по закону де Моргана. Подробнее о двоичном алфавите читай в статье «0 и 1: На каком языке говорят машины».