"Информатика (базовый и углублённый уровни) (в 2 частях)", Поляков К.Ю., Еремин Е.А.
Система счисления — способ записывать числа с помощью определённых символов и правил. В позиционной системе значение цифры зависит от её места, а веса разрядов задаются основанием. Двоичная, восьмеричная и шестнадцатеричная системы особенно важны в информатике: они помогают компактно представлять данные, которые компьютер хранит в двоичном виде. Научившись переводить числа между системами, можно понимать и проверять такие записи.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Позиционная система счисления — способ записи чисел, при котором значение цифры определяется не только самой цифрой, но и её местом. Например, цифра 3 в числе 30 означает три десятка, а в числе 300 — три сотни. Это правило позволяет представлять большие числа небольшим набором символов.
Основание системы счисления — число, которое задаёт количество цифр в системе и веса разрядов. В системе с основанием q используются цифры от 0 до q−1, а веса разрядов справа налево равны 1, q, q² и далее. Зная основание, можно прочитать запись числа и перевести её в другую систему.
Алфавит системы счисления — набор символов, которыми записывают числа. В двоичной системе это 0 и 1, в восьмеричной — цифры от 0 до 7, а в шестнадцатеричной — цифры от 0 до 9 и буквы A–F. Алфавит помогает сразу определить, допустима ли конкретная запись.
Запись числа в системе счисления — последовательность цифр, каждая из которых занимает определённый разряд. Значение записи получают, умножая каждую цифру на вес её разряда и складывая результаты. Поэтому, например, одинаковые цифры в записях 12 и 21 имеют разное значение.
Чтобы найти значение записи, её раскладывают на сумму разрядных слагаемых. В десятичном числе 352 цифра 3 означает 3·10², цифра 5 — 5·10¹, а цифра 2 — 2·10⁰. В системе с основанием q действует то же правило: разряды соответствуют степеням q. Основание меняет веса, но принцип позиционной записи остаётся тем же.
В системе с основанием q есть ровно q цифр: от 0 до q−1. Это связано с тем, что после использования всех значений разряда нужно перейти к следующему, более весомому разряду. Так, в десятичной системе после 9 появляется 10, а в двоичной после 1 — 10₂. Ноль при этом показывает, что в соответствующем разряде нет единиц.
Двоичная система использует основание 2 и цифры 0, 1; восьмеричная — основание 8 и цифры 0–7; шестнадцатеричная — основание 16. В последней буквы A, B, C, D, E и F обозначают значения от 10 до 15, чтобы алфавит содержал шестнадцать символов. Основание часто указывают нижним индексом, например 101₂ или 3A₁₆, чтобы не спутать записи из разных систем. Это особенно полезно, когда одна и та же последовательность цифр может иметь разные значения.
Для перевода целого десятичного числа в систему с основанием q его делят на q. Первый остаток становится цифрой младшего разряда, а частное делят снова, пока оно не станет нулём. Каждый новый остаток относится к следующему разряду, поэтому остатки в порядке получения записывались бы справа налево. Отсюда правило: итоговое число составляют, читая остатки в обратном порядке.
При переводе двоичной записи в восьмеричную справа налево выделяют группы по три разряда, а в шестнадцатеричную — по четыре. Причина в равенствах 8 = 2³ и 16 = 2⁴: каждая группа двоичных цифр точно задаёт одну цифру новой системы. Если слева осталась неполная группа, её дополняют нулями слева — значение числа от этого не меняется. Затем каждую группу заменяют соответствующей цифрой по её двоичному значению.
| Свойство | Двоичная | Восьмеричная | Шестнадцатеричная |
|---|---|---|---|
| Основание | 2 | 8 | 16 |
| Алфавит цифр | 0, 1 | 0–7 | 0–9, A–F |
| Как записываются разряды | Степени 2 | Степени 8 | Степени 16 |
| Связь с группами двоичных разрядов | Один разряд | Три разряда | Четыре разряда |
| Пример записи числа | 1011₂ | 13₈ | B₁₆ |
Сравнивайте сначала основания и алфавиты: так легче проверить, допустимы ли цифры записи. Строка о группах показывает, как быстро переводить числа между этими системами, не раскладывая каждый разряд отдельно.
Задача 1. Переведите число 13 из десятичной системы в двоичную. Нужно последовательно делить на 2 и сохранить остатки, поскольку они будут цифрами искомого числа. Остаток от первого деления относится к самому правому разряду. Поэтому результат нельзя записывать в порядке вычислений.
Ответ: 13₁₀ = 1101₂. Проверка по разрядам даёт 1·2³ + 1·2² + 0·2¹ + 1·2⁰ = 8 + 4 + 1 = 13.
Задача 2. Переведите число 11010110₂ в восьмеричную систему. Для восьмеричной записи нужны группы по три бита, поскольку 8 = 2³. Начинаем группировать справа, а недостающие разряды добавляем слева нулями. Каждую группу заменяем числом от 0 до 7.
Ответ: 11010110₂ = 326₈. Проверка: 326₈ = 3·8² + 2·8 + 6 = 192 + 16 + 6 = 214, а двоичная запись также даёт 214.
Задача 3. Переведите число 3A₁₆ в десятичную систему, а затем проверьте результат переводом в двоичную. Буква A в шестнадцатеричном алфавите обозначает десять. Сначала разложим число по степеням основания 16, затем отдельно переведём его цифры в двоичную систему. Такая проверка помогает убедиться, что обе записи обозначают одно значение.
Ответ: 3A₁₆ = 58₁₀ = 111010₂. Проверка: 111010₂ = 32 + 16 + 8 + 2 = 58, поэтому перевод согласуется.
Ошибка — записывать в системе цифру, которой нет в её алфавите, например 2 в двоичном числе. Такую цифру иногда используют по привычке, потому что в десятичной системе она обычна. Проверяйте каждую цифру по основанию: в системе с основанием q допустимы значения только от 0 до q−1.
При переводе делением можно прочитать остатки в порядке их получения. Тогда младший и старший разряды меняются местами, и получается другое число. Проверяйте себя обратным переводом: разложите полученную запись по степеням основания и сравните результат с исходным числом.
При переводе в десятичную систему иногда неверно назначают степени основания. Нумерация разрядов начинается с нуля у крайней правой цифры, а не с левой. Чтобы проверить разложение, подпишите над цифрами степени справа налево: 0, 1, 2 и далее, затем сложите слагаемые.
При группировке битов ошибаются, начиная слева, или оставляют неполную крайнюю группу без дополнения. Это нарушает соответствие между группами и разрядами исходного числа. Группируйте справа налево: по три бита для восьмеричной системы и по четыре для шестнадцатеричной, а слева при необходимости добавляйте нули.
Для работы с другими системами счисления нужно понимать привычную десятичную позиционную запись и уметь раскладывать число по разрядам. Если известно, что 352 = 3·10² + 5·10 + 2, тот же способ можно применить к любому основанию. Различаются только набор цифр и веса разрядов.
Перевод систем счисления помогает понять, как компьютер представляет данные: внутри устройства информация кодируется двоичными разрядами. Восьмеричная и шестнадцатеричная записи делают длинные последовательности битов короче и удобнее для чтения. Эти способы используют, например, при записи адресов и разборе машинных данных.
Почему основание системы счисления не может быть меньше двух?
В позиционной системе нужны как минимум два символа: ноль и единица. Основание 1 не даёт обычного набора цифр и разрядных весов, а запись числа фактически сводится к повторению одного символа.
Почему в двоичной системе нельзя записать цифру 2?
Основание двоичной системы равно 2, поэтому её алфавит состоит только из цифр 0 и 1. Значение два в ней записывают как 10₂: единица занимает разряд двоек, а ноль — разряд единиц.
Как понять, какое десятичное значение имеет число, записанное в другой системе?
Каждую цифру умножают на вес её разряда — соответствующую степень основания, начиная справа со степени 0. Затем полученные значения складывают. Например, 101₂ = 1·2² + 0·2¹ + 1·2⁰ = 5.
Почему при переводе делением остатки нужно читать снизу вверх?
Первый остаток показывает цифру младшего разряда, следующий — следующего разряда, и так далее. Поэтому после завершения деления цифры записывают в обратном порядке: от последнего остатка к первому.
Зачем двоичные цифры группируют при переводе в восьмеричную или шестнадцатеричную систему?
Три двоичных разряда могут обозначить значения от 0 до 7 — это одна восьмеричная цифра. Четыре разряда дают значения от 0 до 15 — это одна шестнадцатеричная цифра. Группировка позволяет быстро перевести запись без длинных вычислений.
§ 14. Другие системы счисления