"Информатика (в 2-х частях)", Горячев А.В., Островский С.Л., Паволоцкий А.В., Семёнов А.А., Чернышёва Т.Л., Широков Д.В.
Шестнадцатеричная система счисления записывает числа с помощью шестнадцати цифр: от 0 до 9 и от A до F. Она удобна в информатике: двоичные данные в такой записи становятся короче, а перевод между двумя системами выполняется по простому правилу — каждой шестнадцатеричной цифре соответствуют четыре двоичных разряда. Чтобы работать с такими числами, нужно учитывать основание 16 и вес каждой цифры в её позиции.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Шестнадцатеричная система счисления — позиционная система с основанием 16. Основание показывает, сколько разных цифр используется для записи чисел, и определяет вес каждого разряда. Поэтому значение цифры зависит не только от её символа, но и от того, где она стоит.
Шестнадцатеричные цифры — символы 0–9 и A–F. Первые десять совпадают с привычными десятичными цифрами, а буквам A, B, C, D, E, F соответствуют значения 10, 11, 12, 13, 14, 15. Буквы нужны, потому что для основания 16 одних символов 0–9 недостаточно.
Разряд числа — позиция, которую занимает цифра в записи. Справа налево идут разряды единиц, шестнадцаток, 16² и так далее. При переходе на один разряд влево вес цифры возрастает в 16 раз, поэтому одна и та же цифра в разных позициях вносит разный вклад в число.
Запись шестнадцатеричного числа — последовательность символов 0–9 и A–F, значение которой зависит от основания. Чтобы не перепутать её с десятичной, основание указывают нижним индексом: например, 2F₁₆. Такая отметка особенно полезна, если запись состоит только из цифр и сама по себе не показывает, в какой системе она дана.
В системе с основанием 16 требуется шестнадцать разных значений цифр: от нуля до пятнадцати. После девяти привычные обозначения заканчиваются, поэтому для оставшихся шести значений используют буквы A–F. Это не отдельные числа, а такие же цифры позиционной записи, как 0–9: например, F означает значение 15.
Чтобы узнать десятичное значение шестнадцатеричной записи, разложите её по разрядам. Цифру единиц умножьте на 16⁰, следующую слева — на 16¹, затем на 16² и так далее, после чего сложите результаты. Степень растёт при движении влево, потому что каждый следующий разряд содержит в 16 раз более крупные единицы счёта.
Целое десятичное число удобно переводить в шестнадцатеричное последовательным делением на 16. Остаток от первого деления задаёт самый правый разряд, то есть младшую цифру; остатки последующих делений задают всё более старшие разряды. Поэтому готовую запись составляют, читая остатки в обратном порядке, а остаток 10–15 заменяют соответствующей буквой A–F.
Одна шестнадцатеричная цифра соответствует четырём двоичным разрядам, потому что четыре двоичные позиции могут образовать 2⁴ = 16 комбинаций. Это совпадает с числом возможных значений шестнадцатеричной цифры. Для перевода двоичной записи в шестнадцатеричную отсчитывайте группы по четыре разряда справа налево: граница справа совпадает с концом записи, а добавление нулей слева не меняет её значения.
Обратный перевод выполняют по цифрам: каждую заменяют её четырёхразрядным двоичным кодом. Код всегда должен состоять из четырёх разрядов, поэтому в коротких кодах слева дописывают нули. Например, шестнадцатеричная цифра 3 заменяется на 0011, а не на 11: так все группы сохраняют одинаковую длину и их легко соединить в общую запись.
| Шестнадцатеричная цифра | Десятичное значение | Двоичный код из 4 разрядов |
|---|---|---|
| 0–9 | 0–9 | от 0000 до 1001 |
| A | 10 | 1010 |
| B | 11 | 1011 |
| C | 12 | 1100 |
| D | 13 | 1101 |
| E | 14 | 1110 |
| F | 15 | 1111 |
Таблица помогает заменить шестнадцатеричную цифру её десятичным значением или четырёхразрядным двоичным кодом. Для цифр 0–9 двоичные коды идут от 0000 до 1001, а буквы продолжают ряд до 1111. При переводе записи целиком заменяйте каждую цифру отдельно.
Задача 1. Перевести число 2F₁₆ в десятичную систему. В записи две цифры, поэтому достаточно учесть разряды единиц и шестнадцаток. Справа стоит F со значением 15, а слева — 2; остаётся умножить их на веса этих разрядов и сложить.
Ответ: 2F₁₆ = 47₁₀. Проверка по разрядам подтверждает, что цифра F означает пятнадцать единиц, а не отдельный символ без числового значения.
Задача 2. Перевести число 173₁₀ в шестнадцатеричную систему. При делении на 16 остаток показывает текущую цифру, начиная с младшей. Продолжаем делить частное, пока оно не станет меньше 16: оставшееся частное будет старшей цифрой.
Ответ: 173₁₀ = AD₁₆. Проверить результат можно разложением: 10 · 16 + 13 = 173. Такая проверка помогает заметить, если остатки были записаны в неправильном порядке.
Задача 3. Перевести число 1011011110₂ в шестнадцатеричную систему. Двоичные цифры объединяем в группы по четыре, начиная справа, поскольку правая граница записи должна остаться на месте. Слева остаётся короткая группа, поэтому перед ней добавляем нули.
Ответ: 1011011110₂ = 2DE₁₆. Нули добавлены только слева от исходной записи, поэтому значение числа не изменилось. Полученные группы соответствуют цифрам 2, D и E именно в том же порядке, в котором они шли слева направо.
Ошибка — воспринимать A–F как отдельные числа, а не как цифры со значениями от 10 до 15. Так бывает, если забыть, что в позиционной записи любой символ имеет числовое значение и занимает конкретный разряд. Проверяйте букву по таблице: например, C — это 12, а F — 15.
При переводе в десятичную систему иногда считают разряды слева направо или начинают степени 16 с единицы. Тогда все веса смещаются и получается неверное число. Начинайте справа со степени 16⁰ = 1, а затем двигайтесь влево, каждый раз увеличивая показатель на один.
При переводе десятичного числа в шестнадцатеричное можно записать остатки в порядке их получения. Первый остаток относится к самому правому, младшему разряду, поэтому такая запись будет перевёрнутой. Составляя ответ, прочитайте остатки от последнего к первому и замените остатки 10–15 буквами.
В двоично-шестнадцатеричном переводе неверно группируют разряды или забывают дополнить левую группу нулями. Ошибка возникает, если начать группировку слева: тогда границы групп сместятся. Проверка простая: разделите запись на четвёрки справа налево, а неполную первую группу дополните нулями слева.
Для работы с шестнадцатеричной записью нужны знания о позиционной записи чисел, разрядах и степенях числа: именно они объясняют вес каждой цифры. Связь с двоичной системой особенно удобна в информатике: длинную последовательность нулей и единиц можно компактно записать шестнадцатеричными цифрами и быстро восстановить по группам из четырёх разрядов. Поэтому понимание обеих систем помогает читать и записывать данные.
Почему в шестнадцатеричной системе используются буквы?
Для основания 16 нужны шестнадцать разных цифр, а обычных цифр от 0 до 9 только десять. Поэтому значениям от 10 до 15 присвоили буквы A, B, C, D, E и F.
Как понять, что запись числа дана в шестнадцатеричной системе?
На запись указывает основание 16 в нижнем индексе, например 2F₁₆. Буквы A–F также показывают, что это не обычная десятичная запись; если букв нет, основание обычно уточняют в условии.
Как перевести шестнадцатеричное число в десятичное?
Нужно умножить каждую цифру на степень 16, соответствующую её разряду, и сложить результаты. Нумерацию разрядов начинают справа с нуля: единицы, затем 16, 16² и так далее.
Почему одна шестнадцатеричная цифра соответствует четырём двоичным разрядам?
Четыре двоичных разряда дают 2⁴ = 16 разных комбинаций — ровно столько значений есть у шестнадцатеричной цифры. Поэтому каждую такую цифру можно заменить четырёхразрядным двоичным кодом.
В какую сторону нужно читать остатки при переводе десятичного числа в шестнадцатеричное?
Остатки читают в обратном порядке — от последнего к первому. Первый остаток показывает младший разряд, а последний полученный остаток становится старшей цифрой.
§ 6. Шестнадцатеричная система счисления