"Информатика (базовый уровень)", Гейн А.Г., Гейн А.А.
Системы счисления позволяют записывать числа разными наборами цифр и правил. Перевод между ними нужен, чтобы понимать, как компьютер представляет данные, и читать двоичные, восьмеричные и шестнадцатеричные записи. Главное в переводе — учитывать основание системы и вес каждого разряда. В десятичную систему переводят сложением разрядных слагаемых, а из десятичной — последовательным делением на новое основание.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Система счисления — способ записи чисел с помощью цифр и правил их значения. Системы бывают позиционными и непозиционными: в позиционной значение цифры зависит от места в записи, а в непозиционной оно не определяется таким образом. Позиционные системы удобны тем, что позволяют записывать большие числа ограниченным набором цифр.
Основание позиционной системы — количество цифр, используемых в ней. Например, в десятичной системе основание 10, а в двоичной — 2. Целочисленное основание должно быть больше единицы: при основании 1 система имела бы только одну цифру, и разряды не задавали бы возрастающие степени для обычной записи чисел.
Разряд числа — позиция цифры в записи, отсчитываемая справа налево. В позиционной системе вес разряда равен степени основания: у крайнего справа разряда вес 1, или p⁰, у следующего — p¹. Благодаря разрядам одна и та же цифра может обозначать единицы, десятки или сотни.
Десятичная запись представляет число как сумму произведений цифр на соответствующие степени числа 10. Например, 472₁₀ = 4 · 10² + 7 · 10¹ + 2 · 10⁰. Такая запись показывает, как привычное значение числа связано с позициями его цифр.
Позиционная запись раскладывается в сумму разрядных слагаемых: каждая цифра умножается на вес своего места. Например, в числе 303₁₀ первая цифра означает три сотни, а последняя — три единицы. Хотя цифра в обоих случаях одинаковая, множители 10² и 10⁰ различаются, поэтому различается и вклад цифр в число.
Чтобы перевести запись из системы с основанием p в десятичную, умножьте каждую цифру на вес её разряда и сложите результаты. Основание определяет веса, а цифры — сколько таких весов входит в число. Например, в записи 1011₂ веса справа налево равны 1, 2, 4 и 8, поэтому значение числа равно 1 · 8 + 0 · 4 + 1 · 2 + 1 · 1 = 11₁₀.
Для перевода целого десятичного числа в систему с основанием q последовательно делите число на q. Записывайте остаток каждого деления, а частное снова делите на q, пока оно не станет равно нулю. Остатки всегда допустимые цифры новой системы: каждый из них меньше q.
Остатки нужно читать в обратном порядке, потому что при первом делении получается остаток от единиц новой системы, то есть младшая цифра. Частное содержит оставшуюся часть числа, которую затем разбирают на более старшие разряды. Поэтому последующие остатки соответствуют всё более высоким степеням q, а готовая запись начинается с последнего полученного остатка.
Между двумя недесятичными системами можно переводить через десятичную: сначала найти значение исходной записи, затем разделить его на основание целевой системы. Это общий способ, подходящий для любых оснований. Если основания связаны степенями двойки, часто быстрее сгруппировать двоичные разряды: по три для восьмеричной и по четыре для шестнадцатеричной записи.
| Направление перевода | Основной приём | Порядок действий | Проверка результата |
|---|---|---|---|
| Из системы с основанием p в десятичную | Разложение по степеням p | Умножить цифры на веса разрядов и сложить | Повторно вычислить сумму разрядных слагаемых |
| Из десятичной в систему с основанием q | Последовательное деление на q | Делить, записывать остатки и прочитать их снизу вверх | Перевести полученную запись в десятичную |
| Из системы с основанием p в систему с основанием q через десятичную | Два последовательных перевода | Сначала найти десятичное значение, затем делить на q | Сравнить значение исходной и итоговой записей |
| Из двоичной в восьмеричную или шестнадцатеричную | Разбиение двоичных разрядов на группы | Группировать справа налево по три или четыре разряда и заменить группы цифрами | Перевести результат обратно в двоичную запись |
Сначала выберите строку по направлению перевода: от этого зависит основной приём. В столбце «Порядок действий» указана последовательность, а последний столбец помогает проверить вычисления. Для двоичной записи используйте группировку только при переходе к системам с основанием 8 или 16.
Условие: перевести число 101101₂ в десятичную систему. Основание равно 2, поэтому разряды справа налево имеют веса 2⁰, 2¹, 2² и далее. Умножим каждую цифру на вес её позиции: нулевые цифры дадут нулевые слагаемые, а единицы сохранят соответствующие степени двойки.
Ответ: 101101₂ = 45₁₀. Проверка состоит в том, что в разложении учтены все шесть разрядов, а степени двойки идут от 5 до 0.
Условие: представить число 156₁₀ в системе с основанием 3. Выполним деление с остатком: каждое частное делим дальше, пока оно не станет нулём. Остатки будут цифрами ответа, но записывать их нужно от последнего к первому.
Ответ: 156₁₀ = 12210₃. Проверим значение: 1 · 3⁴ + 2 · 3³ + 2 · 3² + 1 · 3¹ + 0 · 3⁰ = 81 + 54 + 18 + 3 = 156.
Условие: перевести число 2F₁₆ в двоичную систему. У шестнадцатеричного основания 16, а 16 = 2⁴, поэтому каждой шестнадцатеричной цифре соответствует группа из четырёх двоичных разрядов. Буква F обозначает значение 15 и соответствует числу 1111₂.
Ответ: 2F₁₆ = 101111₂. Начальные нули можно удалить, поскольку они не меняют значение числа; при обратной проверке группы 0010 и 1111 дают цифры 2 и F.
При переводе в десятичную систему иногда складывают цифры записи, не учитывая разряды. Так поступают, если забывают, что позиция задаёт множитель — степень основания. Для проверки выпишите веса справа налево и умножьте на них каждую цифру, включая нулевые разряды.
При делении на новое основание остатки могут записать в том порядке, в каком они получены. Это происходит потому, что первый остаток находится в начале решения, хотя он относится к младшему разряду. Проверьте порядок: частное после очередного деления становится меньше, а его остатки описывают всё более старшие разряды.
Иногда в записи используют цифру, равную основанию или превышающую его, например цифру 2 в системе с основанием 2. Такая цифра невозможна: допустимый диапазон начинается с нуля и заканчивается на q − 1. Проверяйте каждую цифру по основанию системы, указанному у числа.
Ещё одна ошибка — не указывать основание или неверно читать запись без него. Последовательность 10 может обозначать десять в десятичной системе, два в двоичной или другое значение при ином основании. Указывайте основание и проверяйте результат переводом в десятичную систему по разрядным весам.
Для переводов нужны деление с остатком, степени натуральных чисел и понимание позиционной записи десятичных чисел. Эти приёмы помогают изучать двоичное представление данных, кодирование и арифметические операции компьютера. Двоичная система непосредственно описывает данные на уровне битов, а восьмеричная и шестнадцатеричная позволяют компактнее записывать и читать длинные двоичные последовательности.
Почему при переводе из десятичной системы остатки нужно читать снизу вверх?
Первый остаток показывает цифру самого младшего разряда, то есть разряда с весом q⁰. Каждый следующий остаток относится к более старшему разряду, поэтому цифры результата записывают в обратном порядке получения.
Как определить вес цифры в записи числа?
Пронумеруйте разряды справа налево, начиная с нуля. В системе с основанием p вес разряда с номером k равен pᵏ.
Можно ли использовать цифру 2 в системе с основанием 2?
Нет. В системе с основанием q разрешены цифры от 0 до q − 1, поэтому в двоичной системе используются только 0 и 1.
Как перевести число из одной недесятичной системы в другую?
Обычно сначала переводят число в десятичную систему, а затем — из десятичной в нужную. Для некоторых пар систем, например двоичной и восьмеричной, удобнее группировать двоичные цифры.
Как проверить, правильно ли выполнен перевод?
Переведите полученную запись обратно в исходную систему или вычислите её значение через степени основания. Если значение совпало с исходным числом, перевод выполнен верно.
§ 11. Перевод целых чисел из одной системы счисления в другую