Системы счисления
Как люди записывают числа — и почему компьютер
делает это иначе, чем мы.
- чем запись числа отличается от самого числа;
- непозиционные системы — и чем они плохи;
- позиционные системы и основание;
- шесть переводов, которые надо уметь делать.
с чего всё начинается
Число и его запись — не одно и то же
Одно и то же количество можно записать по-разному.
Меняется запись, количество не меняется.
четырнадцать
14 XIV 1110₂ E₁₆
вывод
Спорить, «какая запись правильная», бессмысленно —
правильны все. Вопрос только в том, по какому правилу
она сделана и удобно ли с ней работать.
определение
Система счисления — способ записи чисел
У любой системы счисления есть две части:
| алфавит |
набор цифр, которыми пользуемся |
| правило |
как из этих цифр складывается значение числа |
две семьи систем
| непозиционные |
вклад цифры не зависит от её места в записи |
| позиционные |
вклад цифры зависит от места (позиции) |
непозиционные
Единичная и римская
единичная (унарная)
||||| = 5
Одна палочка — одна единица. Самая
древняя: так считают на пальцах и ставят зарубки. Годится,
пока чисел мало.
римская: алфавит
I=1 V=5 X=10 L=50 C=100 D=500 M=1000
правило
Значение — сумма. Но если меньшая цифра стоит
перед большей, она вычитается.
разбор
| XXVII | 10 + 10 + 5 + 1 + 1 |
27 |
| XIV | 10 + (5 − 1) |
14 |
| MCMXCIV |
1000 + (1000 − 100) + (100 − 10) + (5 − 1) |
1994 |
две оговорки
Вычитаются только I (перед V, X), X (перед L, C)
и C (перед D, M). Одна и та же цифра подряд —
не больше трёх раз.
зачем понадобились другие
Почему от римских цифр отказались
Попробуйте сложить в столбик:
XXVII + XIV
не получается
Столбик требует разрядов: единицы под единицами,
десятки под десятками. В римской записи разрядов нет —
складывать и умножать приходится «переводя в уме».
как считают на самом деле
XXVII + XIV → 27 + 14 = 41 → XLI
Нет нуля и нет разрядов — значит, нет и удобной арифметики.
Ради неё и придумали позиционные системы.
позиционные
Место цифры решает всё
Количество цифр в алфавите называется
основанием системы.
развёрнутая форма записи
число: 4 4 3₆
позиции: 2 1 0
443₆ = 4·6² + 4·6¹ + 3·6⁰ = 144 + 24 + 3 = 171
отсюда сразу два следствия
- цифры системы с основанием q — это 0 … q−1:
в шестеричной нет цифры 6, в двоичной только 0 и 1;
- перевод в десятичную = посчитать развёрнутую форму.
Отдельного правила учить не надо.
позиционные
Три системы, важные для компьютера
| система | основание | алфавит | зачем |
| двоичная | 2 | 0, 1 |
есть ток / нет тока — то, что умеет техника |
| восьмеричная | 8 | 0–7 |
короткая запись двоичного |
| шестнадцатеричная | 16 |
0–9, A–F |
ещё короче: цвет #FF8800,
адреса памяти |
в шестнадцатеричной буквы — это числа
| 16 | A | B | C | D |
E | F |
| 10 | 10 | 11 | 12 | 13 |
14 | 15 |
что будем уметь
Шесть переводов
- 2 → 10
- 10 → 2
- 8 → 10
- 10 → 8
- 16 → 10
- 10 → 16
Слева — «прочитать» число, справа — «записать».
Приём для всей левой колонки один, и для всей правой тоже один.
То есть учить надо два приёма, а не шесть.
приём первый
Прочитать число: развёрнутая форма
Каждую цифру умножаем на основание в степени её
позиции. Позиции считаем справа налево, с нуля.
общее правило
число: a a a aq
позиции: 3 2 1 0
= a·q³ + a·q² + a·q¹ + a·q⁰
Один приём на все три перевода в десятичную —
меняется только основание q.
приём второй
Записать число: деление с остатком
Делим на основание, пока не получится 0.
Остатки читаем снизу вверх.
почему так
остаток от деления на q — это последняя цифра
частное — то, что осталось записать слева
Тоже один приём на все три перевода из десятичной.
В шестнадцатеричной остаток 10–15 записываем буквой A–F.
Итого — два приёма на шесть переводов
- 2 → 10
развёрнутая форма
- 10 → 2
деление с остатком
- 8 → 10
развёрнутая форма
- 10 → 8
деление с остатком
- 16 → 10
развёрнутая форма
- 10 → 16
деление с остатком
где обычно спотыкаются
- читают остатки сверху вниз — ответ выходит задом наперёд;
- забывают, что A–F — это числа, а не буквы;
- теряют нули в середине: 1000001₂
— не 100001₂.
Теперь открываем тренажёр из общей папки.
У каждого свои числа; на «5» нужно освоить все шесть переводов.