Лекція 10. Як комп’ютер додає двійкові числа
Лекція 10. Як комп’ютер додає двійкові числа
Section titled “Лекція 10. Як комп’ютер додає двійкові числа”Рівень 2: Архітектор логіки
Марко, сьогодні ми не просто вивчимо новий термін — ми відкриємо ще один шар того, як насправді працює комп’ютер.
Що ми сьогодні розкриємо
Section titled “Що ми сьогодні розкриємо”- навчитися виконувати просте двійкове додавання
- побачити перенесення між розрядами
- зв’язати двійкову арифметику з роботою процесора на концептуальному рівні
Зв’язок з попередніми лекціями
Section titled “Зв’язок з попередніми лекціями”У цій лекції ми використаємо знання про двійкову систему з лекції 2, щоб навчитися виконувати двійкове додавання.
Правила двійкового додавання дуже короткі
Section titled “Правила двійкового додавання дуже короткі”У десятковій системі ти знаєш: 9 + 1 = 10, тому виникає перенос. У двійковій цифр лише дві, тому перенос з’являється вже при 1 + 1.
0 + 0 = 00 + 1 = 11 + 0 = 11 + 1 = 10 ← пишемо 0, переносимо 11 + 1 + 1 = 11Додаємо справа наліво
Section titled “Додаємо справа наліво”Наприклад:
101 (5) + 011 (3) ----- 1000 (8)Спочатку праві біти: 1+1=10, пишемо 0 й переносимо 1. Потім середній розряд: 0+1+перенос=10. Потім 1+0+перенос=10. Останній перенос стає новою одиницею зліва.
Процесор будує складне з простого
Section titled “Процесор будує складне з простого”Реальні процесори виконують арифметику електронними логічними схемами. Ми не будемо конструювати транзисторний суматор, але важлива інженерна ідея така: дуже складні обчислення складаються з величезної кількості маленьких, чітких операцій.
Це схоже на LEGO: окрема цеглинка проста, але з мільйонів цеглинок можна побудувати космічний корабель.
Приклади
Section titled “Приклади”Приклад 1
Section titled “Приклад 1”0011 + 0010 = 0101, тобто 3 + 2 = 5.
Приклад 2
Section titled “Приклад 2”0111 + 0001 = 1000, тобто після 7 двійково приходить 8.
Приклад 3
Section titled “Приклад 3”Можна перевіряти себе Python: bin(0b101 + 0b11) поверне 0b1000. Тут 0b101 — число, записане прямо у двійковій формі.
Python-лабораторія: перевіряємо ручні обчислення
Section titled “Python-лабораторія: перевіряємо ручні обчислення”pairs = [ (0b0011, 0b0010), (0b0101, 0b0011), (0b0111, 0b0001),]
for a, b in pairs: print(bin(a), "+", bin(b), "=", bin(a + b), "=", a + b)Спочатку кожну суму порахуй на папері, а вже потім запускай код.
Місія для Марка
Section titled “Місія для Марка”Виконай місію по черзі. Якщо щось не виходить — спочатку перечитай приклад вище й спробуй знайти, на якому кроці результат відрізняється.
- на папері обчисли
0010 + 0011,0101 + 0010,0110 + 0011 - перевір усі три відповіді Python-кодом
- для кожного прикладу також переведи числа в десяткову систему
- намалюй стрілками, де виникає перенос у прикладі
0111 + 0001 - поясни, чому
1 + 1у двійковій системі записується10
Перевір себе
Section titled “Перевір себе”- Які чотири базові правила двійкового додавання?
- Куди рухається перенос?
- Скільки в десятковій системі
1000₂? - Що означає
0bперед числом у Python? - Яку загальну інженерну ідею показує двійкове додавання?
Терміни однією фразою
Section titled “Терміни однією фразою”- Перенос — одиниця, яка переходить у сусідній більший розряд, коли сума не вміщується в один.
- Розряд — позиція в числі зі своєю вагою (одиниці, двійки, четвірки…).
- Двійкова арифметика — правила додавання чисел, записаних 0/1.
- Суматор — електронна схема, яка додає двійкові числа; основа для складніших обчислень.
- Транзистор — маленький електронний «перемикач», з яких будуються логічні схеми процесора.
Чек-лист перед наступною лекцією
Section titled “Чек-лист перед наступною лекцією”- Чи можеш ти пояснити, як відбувається додавання двійкових чисел?
- Чи знаєш ти, що таке перенос (carry) при додаванні?
- Чи розумієш ти, як транзистори реалізують логічні операції?
Що потрібно винести з лекції
Section titled “Що потрібно винести з лекції”- двійкове додавання працює за тими самими позиційними принципами, що й десяткове
- перенос виникає, коли сума не вміщується в один двійковий розряд
- складні обчислення комп’ютера будуються з простих операцій
Хакерський принцип: не запам’ятовуй магічні слова. Намагайся пояснити своїми словами, що відбулося і чому.