Системы счисления: От нуля и единицы к миллионам возможностей 🚀
Привет! Сейчас мы нырнём в тему, которая на первый взгляд может показаться сложной, но на самом деле она окружает тебя повсюду. Каждый раз, когда ты открываешь телефон, запускаешь игру или отправляешь сообщение другу — работают системы счисления. Это язык, на котором общаются все компьютеры в мире. И да, ты тоже можешь его понять!
Раздел 1. Системы счисления — что это вообще такое?
1.1 Позиционные и непозиционные системы
Сейчас мы узнаем, как люди научились записывать числа так, чтобы это было удобно.
Представь, что ты хочешь записать число «сто двадцать три». Ты просто пишешь: 123. Легко, правда? Но задумывался ли ты, почему цифра «1» в начале означает сто, а не просто один?
Всё дело в позиции цифры! В нашей привычной десятичной системе каждая цифра имеет свой «вес» в зависимости от того, где она стоит. Это называется позиционной системой счисления.
💡 Определение
Позиционная система счисления — это система, где значение цифры зависит от её места (позиции) в числе.
Давай разберём на примере:
- Число 123₁₀ (индекс 10 показывает, что это десятичная система)
- Здесь: 1 стоит на месте сотен (1 × 100), 2 — на месте десятков (2 × 10), 3 — на месте единиц (3 × 1)
- Итого: 1 × 100 + 2 × 10 + 3 × 1 = 123
Каждая цифра имеет свой «вес» в зависимости от позиции
🤔 Проверь себя:
- Укажи минимальное основание системы счисления, в которой могут быть записаны числа 123, 222, 111, 241. Какой десятичный эквивалент этих чисел получится в найденной системе? (Подсказка: основание должно быть больше самой большой цифры в числе!)
- Верны ли эти равенства: 33₄ = 21₇ и 33₇ = 21₄? Проверь, переведя оба числа в десятичную систему!
Раздел 1.2. Двоичная система — язык компьютеров 💻
Сейчас мы узнаем, как компьютеры видят весь мир через два символа: 0 и 1.
Вот в чём фишка: компьютеры — это миллиарды крошечных переключателей, которые могут быть либо включены (1), либо выключены (0). Им не нужны все десять цифр, как нам. Им достаточно двух! Это и есть двоичная система счисления — основание 2.
💡 Определение
Двоичная система счисления — это позиционная система счисления с основанием 2. Для записи чисел используются только две цифры: 0 и 1.
Таблица степеней числа 2 (твой must-have!)
| n | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2ⁿ | 1024 | 512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Эта таблица — твой друг навсегда. Запомни хотя бы несколько первых степеней, и перевод из двоичной системы в десятичную станет плёвым делом.
Супергерои 0 и 1 управляют всем цифровым миром
1.2.1. Перевод двоичных чисел в десятичную систему
Давай представим, что у тебя есть двоичное число 10011₂. Как понять, сколько это в привычных нам цифрах?
Способ 1: Развёрнутая форма записи
Любое двоичное число можно записать как сумму степеней двойки. Запишем 10011₂:
10011₂ = 1·2⁴ + 0·2³ + 0·2² + 1·2¹ + 1·2⁰
Теперь вычислим (смотри в таблицу!):
- 2⁴ = 16
- 2¹ = 2
- 2⁰ = 1
Итого: 16 + 0 + 0 + 2 + 1 = 19₁₀
Способ 2: Упрощённая запись
Можно не писать слагаемые с нулевыми коэффициентами. Тогда:
10011₂ = 2⁴ + 2¹ + 2⁰ = 16 + 2 + 1 = 19₁₀
Чувствуешь разницу? Второй способ быстрее!
1.2.2. Перевод целых чисел из десятичной системы в двоичную
Теперь обратная задача: как превратить обычное число (например, 684₁₀) в двоичное?
Метод последовательного деления на 2
Идея простая: делим число на 2, запоминаем остаток (он будет либо 0, либо 1), берём результат деления и снова делим на 2. Повторяем, пока не получим 0.
Давай разберём число 684:
- 684 = 512 + 172 (512 — это 2⁹, самая большая степень двойки, которая меньше 684)
- 172 = 128 + 44 (128 — это 2⁷)
- 44 = 32 + 8 + 4 (32 = 2⁵, 8 = 2³, 4 = 2²)
Итого: 684 = 512 + 128 + 32 + 8 + 4 = 2⁹ + 2⁷ + 2⁵ + 2³ + 2²
Теперь составим двоичную запись. Для каждой позиции (от 9 до 0) ставим 1, если эта степень двойки есть в сумме, и 0 — если её нет:
| n | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2ⁿ | 1024 | 512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| A₂ | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 |
Выписываем все нули и единицы слева направо — это и будет двоичная запись числа 684:
A₂ = 1010101100₂
Нули слева (незначащие) можно удалить, поэтому окончательный ответ: 1010101100₂.
Другой способ: деление с остатком (алгоритм «уголком»)
Давай теперь переведём число 11₁₀ в двоичную систему этим методом:
11 : 2 = 5 (остаток 1) ⬆
5 : 2 = 2 (остаток 1)
2 : 2 = 1 (остаток 0)
1 : 2 = 0 (остаток 1)
Выписываем остатки снизу вверх (начиная с последнего): 1011₂.
Проверка: 1·2³ + 0·2² + 1·2¹ + 1·2⁰ = 8 + 0 + 2 + 1 = 11₁₀ ✅
Машина-переводчик превращает десятичные числа в двоичные
📌 Важное правило
Для перевода целого десятичного числа в двоичную систему счисления нужно последовательно выполнять деление данного числа и получаемых неполных частных на 2 до тех пор, пока не получим неполное частное, равное нулю. Представление исходного числа в двоичной системе счисления образуется путём последовательной записи полученных остатков, начиная с последнего.
1.2.3. Двоичная арифметика — считаем как компьютер!
Арифметика в двоичной системе работает по тем же правилам, что и в десятичной. Только таблицы сложения и умножения стали супер-короткими:
Таблица сложения:
| + | 0 | 1 |
|---|---|---|
| 0 | 0 | 1 |
| 1 | 1 | 10 |
Обрати внимание: 1 + 1 = 10₂ (это 2 в десятичной системе). То есть 0 остаётся в младшем разряде, а 1 переносится в старший.
Таблица умножения:
| × | 0 | 1 |
|---|---|---|
| 0 | 0 | 0 |
| 1 | 0 | 1 |
Проще не бывает!
Пример 1: Сложение двоичных чисел
Давай сложим 1001₂ + 1010₂:
1 0 0 1
+ 1 0 1 0
---------
1 0 0 1 1₂
Проверка: 1001₂ = 9₁₀, 1010₂ = 10₁₀ → 9 + 10 = 19₁₀ = 10011₂ ✅
Ещё пример: 1111₂ + 1₂:
1 1 1 1
+ 1
---------
1 0 0 0 0₂
Это как 15 + 1 = 16 в десятичной системе!
Пример 2: Умножение двоичных чисел
Умножим 1011₂ · 101₂:
1 0 1 1
× 1 0 1
-----------
1 0 1 1 (1011 × 1)
0 0 0 0 (1011 × 0, сдвинутое)
1 0 1 1 (1011 × 1, ещё раз сдвинутое)
-------------
1 1 0 1 1 1₂
Умножение и сложение работают по той же схеме, что и в обычной арифметике — только проще!
Вычитание в двоичной системе
Таблица вычитания:
| − | 0 | 1 |
|---|---|---|
| 0 | 0 | *1 (займ) |
| 1 | 1 | 0 |
Когда нужно вычесть из 0 единицу, мы «занимаем» из старшего разряда (как при вычитании в десятичной системе). При этом в двоичной системе единица старшего разряда образуется из двух единиц соседнего с ним младшего разряда.
Пример 3: Вычитание
Вычтем 10101₂ − 1010₂:
1 0 1 0 1
− 1 0 1 0
-----------
1 0 1 1₂
Проверка: 10101₂ = 21₁₀, 1010₂ = 10₁₀ → 21 − 10 = 11₁₀ = 1011₂ ✅
Пример 4: Деление
Разделим 110110₂ на 110₂:
1 1 0 1 1 0 : 1 1 0 = 1 0 0 1₂
− 1 1 0
---------
1 1 0
− 1 1 0
-------
0
Ответ: 110110₂ : 110₂ = 1001₂
Проверка: 110110₂ = 54₁₀, 110₂ = 6₁₀ → 54 : 6 = 9₁₀ = 1001₂ ✅
Деление двоичных чисел сводится к операциям сравнения и вычитания и оформляется «уголком».
Двоичные супергерои показывают, как работает арифметика в компьютерном мире
✅ Важно помнить
Правильность выполнения арифметических операций в двоичной системе счисления вы всегда можете проверить, переведя в десятичную систему двоичные операнды и полученный результат.
📌 Самое главное (Раздел 1.2)
Давайте подведём итоги того, что мы узнали о двоичной системе:
🤔 Проверь себя
Проверь, как хорошо ты усвоил материал о двоичной системе!
1. Вычисли десятичные эквиваленты двоичных чисел: а) 111₂; б) 1010₂; в) 11011₂
Подсказка: Используй таблицу степеней двойки и метод развёрнутой записи.
2. В некоторый момент времени в пробирке находилась 1 бактерия. Известно, что каждую секунду количество бактерий в пробирке становится вдвое больше. Сколько их будет через 12 секунд?
Подсказка: Это степень двойки! Какая именно?
3. Переведи целые числа из десятичной системы в двоичную: а) 89; б) 600; в) 2020
Подсказка: Используй метод последовательного деления на 2.
4. Сколько единиц в двоичной записи десятичного числа: а) 128; б) 129; в) 255?
Подсказка: Сначала переведи число в двоичную систему, затем посчитай единицы.
5. Сколько значащих нулей в двоичной записи десятичного числа: а) 126; б) 127; в) 128?
Подсказка: Значащие нули — это нули между единицами или после последней единицы (но не в начале).
6. Найди сумму двоичных чисел. Результат запиши в десятичной системе счисления: а) 101010 + 1101; б) 1010 + 1010; в) 10101 + 111
Подсказка: Сложи числа в двоичной системе, затем переведи результат в десятичную.
7. Найди произведение двоичных чисел. Результат запиши в десятичной системе счисления: а) 1010 · 11; б) 111 · 101; в) 1010 · 111
Подсказка: Умножай как в столбик, используя таблицу умножения для двоичной системы.
8. Найди разность двоичных чисел. Результат запиши в десятичной системе счисления: а) 10101 − 101; б) 10101 − 1101; в) 10101 − 1111
Подсказка: Не забывай про заём из старшего разряда!
9. Найди частное двоичных чисел. Результат запиши в десятичной системе счисления: а) 101101 : 101; б) 1001000 : 1001; в) 1111001 : 1011
Подсказка: Используй деление «уголком», как в примере с 110110₂ : 110₂.
10. Расставь знаки арифметических операций так, чтобы были верны следующие равенства в двоичной системе: а) 1100 ? 11 ? 100 = 100000; б) 1100 ? 10 ? 10 = 100; в) 1100 ? 11 ? 100 = 0
Подсказка: Попробуй разные комбинации операций: +, −, ×, :. Проверяй результаты!
11. Какими преимуществами и недостатками обладает двоичная система счисления по сравнению с десятичной?
Подумай о:
- Простоте реализации в электронике
- Удобстве для человека
- Длине записи чисел
- Надёжности передачи данных
Раздел 1.3. Системы счисления, родственные двоичной 🎯
Сейчас мы узнаем, как программисты упрощают свою жизнь с помощью восьмеричной и шестнадцатеричной систем.
Представь: ты программист, и тебе нужно работать с двоичными кодами. Но смотреть на длиннющие строки из нулей и единиц (типа 1010101100110011) — это жесть! Глаза устают, легко ошибиться. Поэтому придумали короткие формы записи двоичных чисел: восьмеричную (основание 8) и шестнадцатеричную (основание 16).
1.3.1. Восьмеричная система счисления
💡 Определение
Восьмеричная система счисления — это позиционная система с основанием 8.
Для записи чисел в восьмеричной системе используются цифры: 0, 1, 2, 3, 4, 5, 6, 7.
Перевод из восьмеричной в десятичную
Всё по тому же принципу, что и с двоичной! Только теперь степени восьмёрки.
Формула для целого восьмеричного числа:
an−1 · 8n−1 + an−2 · 8n−2 + ... + a0 · 80
Пример: Переведём 1063₈ в десятичную систему.
1063₈ = 1·8³ + 0·8² + 6·8¹ + 3·8⁰ = 512 + 0 + 48 + 3 = 563₁₀
Таким образом, для перевода целого восьмеричного числа в десятичную систему счисления следует перейти к его развёрнутой записи и вычислить значение получившегося выражения.
Восемь волшебных дверей связывают двоичный и восьмеричный миры
Перевод из десятичной в восьмеричную
Та же логика, что с двоичной системой, только делим на 8!
Пример: Переведём 571₁₀ в восьмеричную систему.
571 : 8 = 71 (остаток 3) ⬆
71 : 8 = 8 (остаток 7)
8 : 8 = 1 (остаток 0)
1 : 8 = 0 (остаток 1)
Выписываем остатки снизу вверх: 1073₈
Проверка: 1·8³ + 0·8² + 7·8¹ + 3·8⁰ = 512 + 0 + 56 + 3 = 571₁₀ ✅
Связь восьмеричной системы с двоичной
Вот тут начинается магия! Одна восьмеричная цифра = три двоичные цифры (потому что 8 = 2³).
| Восьмеричная | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|---|
| Двоичная (триада) | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
📌 Как переводить из двоичной в восьмеричную:
- Разбей двоичное число на группы по 3 цифры справа налево (триады).
- Каждую триаду замени на соответствующую восьмеричную цифру.
- Готово!
Пример: Переведём 101110010₂ в восьмеричную систему.
Разбиваем на триады (справа налево): 101 110 010
Переводим каждую триаду:
- 101₂ = 5₈
- 110₂ = 6₈
- 010₂ = 2₈
Ответ: 562₈
📌 Как переводить из восьмеричной в двоичную:
Ещё проще! Каждую восьмеричную цифру заменяем на соответствующую триаду.
Пример: 762₈ → ?₂
- 7₈ = 111₂
- 6₈ = 110₂
- 2₈ = 010₂
Ответ: 111110010₂
1.3.2. Шестнадцатеричная система счисления
💡 Определение
Шестнадцатеричная система счисления — это позиционная система с основанием 16.
Тут у нас проблема: цифр всего 10 (от 0 до 9), а нужно 16 символов. Поэтому добавили буквы:
| Десятичная | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Шестнадцатеричная | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
Да, A = 10, B = 11, C = 12, D = 13, E = 14, F = 15.
Эта система очень популярна у программистов, потому что она ещё компактнее восьмеричной!
Шестнадцатеричная система: цифры и буквы работают вместе
Перевод из шестнадцатеричной в десятичную
Пример: Переведём 2A5F₁₆ в десятичную систему.
2A5F₁₆ = 2·16³ + 10·16² + 5·16¹ + 15·16⁰
= 2·4096 + 10·256 + 5·16 + 15·1
= 8192 + 2560 + 80 + 15
= 10847₁₀
Связь шестнадцатеричной системы с двоичной
Одна шестнадцатеричная цифра = четыре двоичные цифры (потому что 16 = 2⁴).
| Шестнадц. | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Двоичная (тетрада) | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
📌 Как переводить из двоичной в шестнадцатеричную:
- Разбей двоичное число на группы по 4 цифры справа налево (тетрады).
- Каждую тетраду замени на соответствующую шестнадцатеричную цифру.
- Готово!
Пример: Переведём 11010111101₂ в шестнадцатеричную систему.
Разбиваем на тетрады (справа налево): 110 1011 1101
Первая группа неполная, дополним слева нулями: 0110 1011 1101
Переводим каждую тетраду:
- 0110₂ = 6₁₆
- 1011₂ = B₁₆
- 1101₂ = D₁₆
Ответ: 6BD₁₆
Пример: Переведём 3F8₁₆ в двоичную систему.
- 3₁₆ = 0011₂
- F₁₆ = 1111₂
- 8₁₆ = 1000₂
Ответ: 001111111000₂ или без лидирующих нулей: 1111111000₂
📌 Самое главное (Раздел 1.3)
Подведём итоги о системах счисления, родственных двоичной:
🎯 Практические задания
Попробуй применить полученные знания на практике!
✍️ Задание 1: Перевод чисел
Переведи число 11011010₂ в:
- Десятичную систему
- Восьмеричную систему
- Шестнадцатеричную систему
🔍 Задание 2: Обратный перевод
Переведи число FA3₁₆ в:
- Двоичную систему
- Восьмеричную систему
- Десятичную систему
🎨 Задание 3: Цветовые коды
В веб-дизайне цвета записывают в шестнадцатеричной системе. Например, #FF0000 — это красный цвет. Попробуй расшифровать:
- Что означает FF?
- Переведи его в десятичную систему
- Какой цвет будет #00FF00?
🔄 Задание 4: Арифметические операции
Вычисли в двоичной системе:
- 1101₂ + 1011₂ = ?
- 10110₂ − 1001₂ = ?
- 101₂ × 11₂ = ?
Проверь ответы, переведя в десятичную систему!
💡 Интересные факты
🎮 Системы счисления в играх
Знаешь ли ты, что в Minecraft координаты мира хранятся в двоичной системе? А все цвета блоков кодируются в шестнадцатеричной системе!
🌐 IP-адреса
IP-адрес твоего компьютера (например, 192.168.1.1) — это на самом деле четыре числа в десятичной системе. Внутри компьютера они хранятся как одно большое двоичное число!
🎨 Цвета в компьютере
Каждый цвет на экране состоит из трёх компонентов: красный, зелёный и синий (RGB). Каждый компонент — это число от 0 до 255 (или от 00 до FF в шестнадцатеричной системе).
🏛️ История
Немецкий философ и математик Готфрид Лейбниц (1646–1716) описал двоичную систему счисления ещё в XVII веке — задолго до появления компьютеров! Он считал, что двоичная система с 0 и 1 символизирует всё в мире.
🚀 Итоговый вызов!
Проверь, насколько хорошо ты освоил все системы счисления!
🎯 Мега-задача
У тебя есть число 2025₁₀ (это текущий год!).
- Переведи его в двоичную систему
- Переведи его в восьмеричную систему
- Переведи его в шестнадцатеричную систему
- Сложи все полученные числа в их системах счисления
- Результат переведи обратно в десятичную систему
Подсказка: Используй все изученные методы перевода. Проверяй каждый шаг!
🤔 Задача для размышления
Почему компьютеры используют именно двоичную систему, а не десятичную, которая привычна для людей? Какие преимущества даёт двоичная система для техники?
Подумай о надёжности, простоте реализации, помехозащищённости...