4. Детектор различий: как схема учится складывать
1. Крючок: лампа в коридоре с двух концов
В длинном коридоре лампа управляется двумя выключателями — один у входа, другой у дальней двери. Щёлкни любым — свет меняется. Оба вверху — горит. Оба внизу — горит. А по-разному — темно… или наоборот?
Это не хитрая проводка электрика. Это вентиль Исключающее ИЛИ (XOR) — «детектор различий». И на нём же, как ни странно, компьютер учится складывать. Сейчас соберём и то, и другое.
2. Сквозная метафора: СПОР ДВУХ СУДЕЙ
Два судьи голосуют «да/нет».
- Исключающее ИЛИ (XOR): сигнал есть, только если судьи разошлись во мнении. Согласны (оба «да» или оба «нет») — тишина.
- Исключающее ИЛИ-НЕ (XNOR): ровно наоборот — сигнал, когда судьи согласны. Это «детектор совпадения».
3. Ядро без воды
3.1 Исключающее ИЛИ (XOR) — «вы разные»
Обычное ИЛИ говорит «да» и когда оба входа 1. Исключающее ИЛИ этот случай исключает: оба 1 — уже нет. Единица только при разных входах. Символ операции — плюс в кружке: .
Правило: выход = 1, если на входах нечётное число единиц (для двух входов — ровно одна).
| B | A | Q = A⊕B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
Символ — как у ИЛИ, но с двойной изогнутой линией на входе, метка =1.
3.2 Исключающее ИЛИ-НЕ (XNOR) — «вы одинаковые»
Прицепи к XOR инвертор — получишь XNOR. Единица, когда входы совпадают (00 или 11). Поэтому его зовут вентилем равнозначности.
| B | A | Q (XNOR) |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Правило: выход = 1, если единиц чётное число (для двух входов — ноль или две).
3.3 Главный фокус: XOR складывает
Сложим два двоичных бита «в столбик»:
Последнее () даёт 10 в двоичном виде: младший разряд «0», а единица идёт в перенос (как в десятичном 5+5=10).
Смотри внимательно на два столбца результата:
| A | B | перенос (Carry) | сумма (Sum) |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 |
- Столбец «сумма» — это в точности таблица XOR ()!
- Столбец «перенос» — это в точности таблица И ()!
4. Концептуальный чек-ап
- XOR выдаёт 1 — что это говорит о входах: они равны или разны?
- Чем XNOR отличается от XOR одним словом?
- Сколько будет 1+1 в двоичной системе и куда девается «лишнее»?
- Какой вентиль отвечает за перенос в полусумматоре?
- XOR с двумя единицами на входе даёт 0. Почему это отличает его от обычного ИЛИ?
5. Разбор: XOR из вентилей И-НЕ (пошагово)
XOR удобно собрать из четырёх универсальных И-НЕ (привет уроку 3). Итоговое выражение:
Шаг 1. «» = 1, только если A=1, а B=0 (входы разные). Шаг 2. «» = 1, только если A=0, а B=1 (тоже разные, но в другую сторону). Шаг 3. ИЛИ между ними: 1, если сработал любой случай «входы разные». Вывод: формула буквально означает «выход = 1, когда A и B различаются» — то самое «вы разные».
6. Практика на верстаке
Полусумматор в симуляторе: схема, которая считает
🔬 Симулятор: Исключающее ИЛИ (XOR): «а вы разные!»
Сначала посчитай, потом запускай. Ожидаемый результат: лампа горит, когда кнопки в РАЗНЫХ положениях, и гаснет когда одинаковы — 01 и 10 дают единицу, 00 и 11 дают ноль. Проверь себя — сходится ли расчёт с симулятором.
▶ Открыть схему в Falstad — откроется в новой вкладке уже собранной.
Если ссылка не открылась — собрать вручную
Зайти на falstad.com/circuit → меню File → Import From Text → вставить:
$ 1 0.000005 10.20 50 5 43 5e-11
L 128 168 80 168 0 0 false 5 0
L 128 200 80 200 0 0 false 5 0
150 256 184 320 184 0 4 2 0 5
w 128 168 256 168 0
w 128 200 256 200 0
M 384 184 432 184 0 2.5
w 320 184 384 184 0Не сработал и импорт — собери схему мышью (Draw → Resistor / Voltage Source). Это 2–3 минуты и само по себе тренировка чтения схемы.
🔬 Симулятор: Полусумматор: складывает два бита
Сначала посчитай, потом запускай. Ожидаемый результат: верхний индикатор — сумма (XOR), нижний — перенос (AND). Проверь 1+1: сумма 0, перенос 1 — то есть двоичное «10», как в столбике. Проверь себя — сходится ли расчёт с симулятором.
▶ Открыть схему в Falstad — откроется в новой вкладке уже собранной.
Если ссылка не открылась — собрать вручную
Зайти на falstad.com/circuit → меню File → Import From Text → вставить:
$ 1 0.000005 10.20 50 5 43 5e-11
L 160 128 112 128 0 0 false 5 0
L 160 272 112 272 0 0 false 5 0
150 288 160 352 160 0 4 2 0 5
150 288 256 352 256 0 0 2 0 5
w 160 128 240 128 0
w 240 128 240 144 0
w 240 144 288 144 0
w 240 128 240 240 0
w 240 240 288 240 0
w 160 272 264 272 0
w 264 272 264 176 0
w 264 176 288 176 0
w 264 272 288 272 0
M 416 160 464 160 0 2.5
w 352 160 416 160 0
M 416 256 464 256 0 2.5
w 352 256 416 256 0Не сработал и импорт — собери схему мышью (Draw → Resistor / Voltage Source). Это 2–3 минуты и само по себе тренировка чтения схемы.
Это уже не просто вентиль — это калькулятор. Две кнопки — два слагаемых. Верхний выход даёт сумму, нижний — перенос. Проверь все четыре случая и запиши результат как двузначное двоичное число «перенос-сумма»:
| A | B | перенос | сумма | это число |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 0 | 10 = 2 |
Последняя строка — тот самый случай «1 + 1 = 10 в двоичной», о котором был вопрос в конце прошлого урока. Схема из двух вентилей научилась складывать, и никакой программы в ней нет — только провода.
Сборка 1. Проходной выключатель = живой XOR
Два тумблера управляют одним светодиодом по схеме «проходного выключателя» (лампа из коридора). Что увидеть: любой тумблер переключает свет. Составь таблицу — она совпадёт с XOR. Ты собрал вентиль из бытовой проводки.
Сборка 2. Настоящий XOR: 74LS86
Поставь 74LS86 (4× XOR). Входы — кнопки, выход — светодиод. Что увидеть: LED горит, только когда входы разные. Заведи на логический анализатор — таблица XOR как на ладони. Сломай/доведи до предела: подай на оба входа один и тот же сигнал (соедини их). Выход навсегда 0 — «судьи всегда согласны». XOR превратился в «глухую» линию.
Сборка 3. Полусумматор — схема, которая считает
XOR (74LS86) даёт сумму, И (74LS08) даёт перенос. Два входа-кнопки = два бита, два светодиода = «перенос» и «сумма». Что увидеть: набери 1+1 (обе кнопки) — «сумма» гаснет (0), а «перенос» загорается (1): на светодиодах читается двоичное 10 = 2. Схема сложила числа! Проверь все четыре комбинации по таблице. Метапредметный момент: объясни, что «перенос» — это ровно то же, что «пишем 0, единицу в уме» в столбике. Компьютер делает так же, только очень быстро.
Сборка 4. XNOR как «детектор совпадения» / контроль ошибок
74LS266 (XNOR) или XOR+инвертор. Сравнивай два сигнала: например, «эталон» и «данные» с двух ножек ESP32. Что увидеть: пока сигналы совпадают — горит «ОК» (XNOR=1). Рассинхронизируй их — «ОК» гаснет. Так работает проверка чётности и обнаружение ошибок в передаче данных. Сломай/доведи до предела: на логическом анализаторе подавай длинную цепочку бит и лови момент, где XNOR «поймал» несовпадение — это и есть детектор сбоя.
7. Разноуровневые задания
8. Итог курса
Мы прошли путь от пандуса и лестницы (урок 1) через три кита логики (урок 2) и универсальный кирпич И-НЕ (урок 3) — к схеме, которая сама считает (урок 4). XOR — «детектор различий» — оказался ключом к арифметике: XOR = сумма, И = перенос. Из горстки простых вентилей собирается всё: от карманного калькулятора до процессора в твоём телефоне.