Skip to content

Лекція 2. Чому комп’ютер любить 0 і 1

Лекція 2. Чому комп’ютер любить 0 і 1

Section titled “Лекція 2. Чому комп’ютер любить 0 і 1”

Рівень 1: Мисливець за даними

Марко, сьогодні ми не просто вивчимо новий термін — ми відкриємо ще один шар того, як насправді працює комп’ютер.

Що ми сьогодні розкриємо

Section titled “Що ми сьогодні розкриємо”
  • зрозуміти, чому електроніці зручно мати два стани
  • навчитися рахувати маленькі числа у двійковій системі
  • переводити числа між десятковим і двійковим записом

Зв’язок з попередніми лекціями

Section titled “Зв’язок з попередніми лекціями”

У цій лекції ми використаємо знання про поняття «дані» з лекції 1, щоб побачити, як комп’ютер записує інформацію за допомогою 0 та 1.

Уяви вимикач лампи. Він може бути вимкнений або увімкнений. Для електроніки дуже зручно розрізняти два стани сигналу. Ми домовляємося позначати їх 0 і 1.

Важливо: всередині сучасного процесора немає маленьких намальованих нулів та одиниць. Є електричні стани, а 0 і 1 — наша зручна мова для їх опису.

Двійкова система — це інший спосіб записувати числа

Section titled “Двійкова система — це інший спосіб записувати числа”

У звичайному житті ми використовуємо десять цифр: 0–9. Це десяткова система. Після 9 закінчуються цифри, тому ми пишемо 10.

У двійковій системі є лише 0 і 1. Після 1 цифри вже закінчилися, тому наступне число записується 10.

десяткова двійкова
0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
8 1000

10₂ означає не «десять», а два, якщо ми знаємо, що це двійковий запис.

У числі 347 справа наліво стоять одиниці, десятки, сотні. У двійковому числі ваги розрядів такі:

... 16 8 4 2 1

Наприклад:

1011₂ = 1×8 + 0×4 + 1×2 + 1×1 = 11

Це не магія — просто інша система рахунку. Поглянь, як двійкове число розкладається на ваги розрядів:

graph TD
    A["Двійкове число: 1011₂"] --> B["Розряд 1
(вага 8)"]
    A --> C["Розряд 0
(вага 4)"]
    A --> D["Розряд 1
(вага 2)"]
    A --> E["Розряд 1
(вага 1)"]

    B -->|"1 × 8 = 8"| S
    C -->|"0 × 4 = 0"| S
    D -->|"1 × 2 = 2"| S
    E -->|"1 × 1 = 1"| S

    S["Сума: 8 + 0 + 2 + 1 = 11₁₀"]

    style A fill:#fff3e0
    style S fill:#e8f5e9

101₂ — це 1×4 + 0×2 + 1×1 = 5.

Щоб записати 6, шукаємо 4 + 2, отже ставимо одиниці в розряди 4 і 2: 110₂.

Python уміє показувати двійковий запис: bin(13) поверне рядок '0b1101'. Префікс 0b повідомляє: далі йде binary — двійкове число.

Python-лабораторія: двійковий перекладач

Section titled “Python-лабораторія: двійковий перекладач”
number = int(input("Введи число від 0 до 31: "))
print("Десяткове:", number)
print("Двійкове:", bin(number))
binary_text = input("Введи двійкове число, наприклад 1010: ")
print("Назад у десяткову:", int(binary_text, 2))

Другий аргумент 2 у int(binary_text, 2) каже Python: «цей текст треба прочитати як число з основою 2».

Виконай місію по черзі. Якщо щось не виходить — спочатку перечитай приклад вище й спробуй знайти, на якому кроці результат відрізняється.

  1. на папері продовж таблицю двійкових чисел від 0 до 15
  2. без Python переведи 1010₂, 111₂ і 10000₂ у десяткові числа
  3. запусти двійковий перекладач і перевір свої відповіді
  4. знайди двійкові записи чисел 9, 12, 17 і 31
  5. поясни, чому після 111₂ іде 1000₂
  • Скільки різних цифр є у двійковій системі?
  • Що означає 0b у Python?
  • Які ваги мають чотири праві двійкові розряди?
  • Чому 10₂ не дорівнює десятковому 10?
  • Скільки в десятковій системі дорівнює 1101₂?
  • Десяткова система — запис чисел десятьма цифрами 0–9 (як ми звикли в житті).
  • Двійкова система — запис чисел лише двома цифрами 0 і 1.
  • Розряд — позиція в числі, яка має свою «вагу» (одиниці, двійки, четвірки…).
  • Основа системи — скільки різних цифр використовуємо (для двійкової — 2).
  • 0b у Python — позначка, що далі написане двійкове число (binary).

Чек-лист перед наступною лекцією

Section titled “Чек-лист перед наступною лекцією”
  • Чи можеш ти пояснити, що таке біт і байт?
  • Чи знаєш ти, скільки значень може мати один біт?
  • Чи розумієш ти, як числа записуються у двійковій системі?

Що потрібно винести з лекції

Section titled “Що потрібно винести з лекції”
  • 0 і 1 — зручні позначення двох фізичних станів
  • двійковий запис — звичайна позиційна система числення з основою 2
  • кожен розряд справа наліво має вагу 1, 2, 4, 8, 16…

Хакерський принцип: не запам’ятовуй магічні слова. Намагайся пояснити своїми словами, що відбулося і чому.