"Информатика (базовый и углублённый уровень)", Гейн А.Г., Сенокосов А.И.
Восьмеричная и шестнадцатеричная системы позволяют записывать двоичные числа короче и удобнее для чтения. Их основания — 8 и 16 — являются степенями двойки, поэтому каждой цифре соответствует группа из трёх или четырёх двоичных разрядов. Перевод выполняют группировкой разрядов, а не последовательным делением: целую часть группируют от запятой влево, дробную — вправо. Освоив правило, можно быстро переводить числа в обе стороны и проверять результат обратным преобразованием.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Позиционная система счисления — система, в которой значение цифры определяется её местом в записи числа. Например, запись 352₁₀ означает 3 · 10² + 5 · 10¹ + 2 · 10⁰: одинаковые цифры в разных разрядах имеют разный вес. Такая запись позволяет понять, как именно разряды связаны с основанием системы.
Основание системы счисления — число, задающее допустимые цифры и веса разрядов. В системе с основанием b используются цифры от 0 до b − 1, а веса разрядов представляют собой степени b. Основание нужно учитывать при чтении и переводе записи, потому что набор символов сам по себе не всегда показывает, какое число записано.
Двоичная система счисления — позиционная система с основанием 2, в которой используются только цифры 0 и 1. Вес каждого следующего разряда слева вдвое больше предыдущего, поэтому запись удобно связывать с наборами двоичных разрядов. Индекс ₂ после числа указывает, что оно записано именно в этой системе.
Системы счисления с основанием, равным степени числа 2, имеют основания 4, 8, 16 и другие числа вида 2ⁿ. Их цифры можно соотнести с группами двоичных разрядов одинаковой длины: например, восьмеричные — с тройками, шестнадцатеричные — с четвёрками. Эта связь нужна, чтобы сокращённо записывать длинные двоичные числа и быстро возвращать их в двоичную форму.
Пусть основание системы равно 2ⁿ. Тогда её цифры имеют значения от 0 до 2ⁿ − 1, а группа из n двоичных разрядов может обозначить ровно столько же разных значений. Поэтому одной цифре новой системы соответствует одна двоичная группа фиксированной длины. Например, три бита кодируют числа от 0 до 7, что совпадает с набором восьмеричных цифр.
Чтобы перевести целое двоичное число в систему с основанием 2ⁿ, запись делят справа налево на группы по n разрядов. Начинают с правого края, потому что он соответствует младшим разрядам, и каждая тройка или четвёрка сохраняет своё место в записи. Если самая левая группа неполная, к ней слева приписывают нули: значение числа не меняется, а группа становится полной.
Обратный перевод выполняют заменой каждой цифры группы из n битов. Для восьмеричной системы каждой цифре сопоставляют три разряда, а для шестнадцатеричной — четыре, даже когда в начале группы стоят нули. Фиксированная длина важна, поскольку без ведущих нулей границы групп могут сместиться, и исходное число окажется записано неверно.
У дробного числа целую и дробную части обрабатывают отдельно, поскольку их разряды направлены от запятой в разные стороны. Целую часть группируют от запятой влево, а дробную — от запятой вправо; последнюю неполную дробную группу дополняют нулями справа. Нули ставят именно с внешнего края группы, чтобы не сдвинуть значащие разряды относительно запятой и не изменить число.
Значение двоичной группы находят как сумму её разрядов, умноженных на степени 2, начиная с нулевой степени справа. Получившееся значение записывают одной цифрой нужной системы; для основания 16 значения от 10 до 15 обозначаются буквами A, B, C, D, E, F. Например, 1111₂ = 15₁₀ = F₁₆, поэтому вместо четырёх битов можно записать одну шестнадцатеричную цифру.
В таблице приведены значения групп, которые помогают быстро заменять тройки двоичных разрядов восьмеричными цифрами. Для четырёхразрядных групп указаны шестнадцатеричные обозначения. Найдите двоичную группу и прочитайте соответствующую цифру; при обратном переводе пользуйтесь той же строкой в противоположном направлении.
| Двоичная группа | Значение в десятичной системе | Цифра в восьмеричной системе | Цифра в шестнадцатеричной системе |
|---|---|---|---|
| 000 | 0 | 0 | — |
| 001 | 1 | 1 | — |
| 010 | 2 | 2 | — |
| 011 | 3 | 3 | — |
| 100 | 4 | 4 | — |
| 101 | 5 | 5 | — |
| 110 | 6 | 6 | — |
| 111 | 7 | 7 | — |
| 0000 | 0 | — | 0 |
| 0001 | 1 | — | 1 |
| 0010 | 2 | — | 2 |
| 0011 | 3 | — | 3 |
| 0100 | 4 | — | 4 |
| 0101 | 5 | — | 5 |
| 0110 | 6 | — | 6 |
| 0111 | 7 | — | 7 |
| 1000 | 8 | — | 8 |
| 1001 | 9 | — | 9 |
| 1010 | 10 | — | A |
| 1011 | 11 | — | B |
| 1100 | 12 | — | C |
| 1101 | 13 | — | D |
| 1110 | 14 | — | E |
| 1111 | 15 | — | F |
Основание 8 равно 2³, поэтому двоичные разряды нужно объединить в тройки. Начинаем справа: так младшие разряды останутся в младшей группе, а порядок числа сохранится. Полученное значение каждой тройки заменяем одной восьмеричной цифрой.
Ответ: 110101₂ = 65₈. Проверить его можно, развернув группы обратно: 6₈ соответствует 110₂, а 5₈ — 101₂. После соединения получается исходная запись 110101₂.
Шестнадцатеричное основание равно 2⁴, поэтому для каждой цифры нужна группа из четырёх двоичных разрядов. Целую и дробную части группируем отдельно, сохраняя запятую между ними. Недостающие разряды дополняем нулями только с внешних краёв.
Ответ: 10110110,101₂ = B6,A₁₆. Ноль справа в дробной группе не изменил значение двоичной дроби: он лишь завершил группу из четырёх разрядов. При обратной замене B6 даёт 1011 0110, а A — 1010; конечный ноль дробной части можно убрать.
Каждая восьмеричная цифра соответствует трём двоичным разрядам, потому что 8 = 2³. Переводим цифры по отдельности, не меняя их порядок и положение запятой. В отличие от группировки целого двоичного числа, здесь нельзя убирать начальные нули внутри трёхразрядной группы.
Ответ: 735,4₈ = 111011101,100₂. Обратная группировка вернула исходные цифры, значит, порядок разрядов и запятая сохранены. Запись дробной части 100₂ можно также сократить до 1₂, но при проверке удобнее видеть полную группу.
Ошибка — группировать разряды от неверного края: например, дробную часть делить на группы справа налево. Это происходит, когда направление группировки запоминают без привязки к запятой. Проверка простая: у целой части группы начинаются у запятой и идут влево, у дробной — начинаются у запятой и идут вправо.
Нельзя добавлять нули с внутреннего края неполной группы: слева у дробной части или справа у целой. Так разряды перемещаются относительно запятой, и значение числа может измениться. Проверьте край группы: нули добавляют только в начале целой записи и в конце дробной.
При замене восьмеричной или шестнадцатеричной цифры иногда записывают двоичную группу без ведущих нулей. Так, цифра 3₈ соответствует не 11₂, а 011₂, поскольку группе полагается три разряда. Сверьте длину каждой группы с правилом: три бита для основания 8, четыре — для основания 16.
Буквы A–F могут принять за посторонние символы или за десятичные числа, а основание записи можно забыть указать. В результате число читается неоднозначно: например, A₁₆ — это цифра со значением 10, а не отдельное десятичное число. Проверяйте допустимость цифр для выбранного основания и подписывайте основание, когда запись без него можно понять по-разному.
Для этой работы нужны знания о позиционной записи числа, степенях основания и переводе между двоичной и десятичной системами. Представление числа суммой разрядов помогает понять, почему группа битов имеет конкретное значение, а не просто механически запомнить таблицу соответствий. Если переводите результат обратно, используйте тот же принцип разрядных весов.
Восьмеричная и шестнадцатеричная записи связаны с устройством компьютера: они компактнее двоичных последовательностей и помогают читать представления данных и машинные коды. Замена группами сохраняет двоичное значение, но делает запись короче. Поэтому этот способ применяют там, где важно быстро увидеть структуру битов.
Почему двоичные разряды при переводе в восьмеричную систему группируют по три?
Основание восьмеричной системы равно 8 = 2³. Три двоичных разряда дают значения от 000 до 111, то есть от 0 до 7, и каждому соответствует одна восьмеричная цифра.
С какой стороны начинать группировать разряды целой и дробной частей?
Целую часть группируют от запятой влево, то есть начиная с её последнего разряда. Дробную часть группируют от запятой вправо.
Можно ли добавлять нули при группировке и изменится ли от этого значение числа?
Можно, если добавлять их только с внешнего края: слева у целой части и справа у дробной. Такие нули не меняют значение числа, а лишь дополняют неполную группу.
Почему при переводе шестнадцатеричной цифры в двоичную нужно записывать ровно четыре разряда?
Основание 16 равно 2⁴, поэтому каждому шестнадцатеричному значению соответствует группа из четырёх двоичных разрядов. Ведущие нули сохраняют одинаковую длину групп и правильное положение разрядов.
Как обозначаются значения от 10 до 15 в шестнадцатеричной системе?
Для них используют буквы A, B, C, D, E и F соответственно. Например, A₁₆ = 10₁₀, а F₁₆ = 15₁₀.
Лабораторная работа № 3 (к § 11) Системы счисления с основанием, равным степени числа 2