"Информатика (базовый и углублённый уровень)", Гейн А.Г., Сенокосов А.И.
Система счисления задаёт, какими цифрами записывают числа и какой вес имеет каждый разряд. Перевод целого числа между системами нужен, чтобы представить одно и то же значение в удобной форме — например, перейти от двоичной записи к десятичной или подготовить число для работы компьютера. В позиционной системе число раскладывают на сумму цифр, умноженных на степени основания. Для обратного перехода применяют деление с остатком, а результат проверяют обратным переводом.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Система счисления — способ записи чисел с помощью определённого набора цифр и правил их использования. Например, в десятичной системе применяются цифры от 0 до 9, а в двоичной — только 0 и 1. Это понятие нужно, чтобы различать запись числа и само его значение.
Основание системы счисления — число, показывающее количество цифр в системе и вес каждого разряда. Его обозначают, например, нижним индексом: (101)₂ — запись в системе с основанием 2. Основание позволяет понять, какие цифры допустимы и как вычислять значение записи.
Позиционная запись числа — запись, в которой значение цифры зависит от её положения и соответствующей степени основания. Так, цифра 5 в числе 50₁₀ означает пять десятков, а в числе 5₁₀ — пять единиц. Это правило позволяет представить запись как сумму вкладов отдельных цифр.
Разряд числа — позиция цифры, связанная с определённой степенью основания системы счисления. Крайний справа разряд целого числа соответствует нулевой степени основания, следующий — первой и так далее. Разряд нужен, чтобы установить вес каждой цифры при вычислении значения числа.
В позиционной записи каждый разряд имеет вес, равный степени основания. Поэтому цифра в этом разряде показывает, сколько раз такой вес входит в число. Складывая вклады всех цифр, получаем значение всей записи: (aₙ…a₁a₀)ᵦ = aₙ·bⁿ + … + a₁·b + a₀·b⁰.
Чтобы перевести запись в десятичную систему, заменяют каждый разряд его весом и находят сумму. Это работает потому, что десятичная запись тоже выражает число через разряды, только с основанием 10. Например, нулевая цифра даёт нулевое слагаемое, но её позиция всё равно важна: цифры слева от неё относятся к более высоким степеням.
При переводе из десятичной системы в систему с основанием b используют последовательное деление на b. Деление показывает, сколько полных групп по b содержится в числе, а остаток показывает число единиц, не вошедших в эти группы. Повторяя деление для частного, мы последовательно определяем цифры всё более высоких разрядов.
Остатки читают в обратном порядке, потому что первый остаток — это количество единиц нового основания, то есть младшая цифра. Остаток следующего деления определяет следующий разряд, имеющий вес b, а более поздние — ещё более высокие разряды. Поэтому порядок получения остатков противоположен порядку записи числа слева направо.
Для перевода между двумя недесятичными системами можно сначала вычислить десятичное значение, а затем перевести его в нужное основание. Такой путь универсален: разложение по степеням работает для исходной системы, а деление с остатком — для новой. Если системы связаны с двоичной удобными группами разрядов, например восьмеричная и шестнадцатеричная, можно сгруппировать двоичные цифры и обойтись без промежуточного десятичного вычисления.
| Направление перевода | Основной приём | Порядок действий | Что означают полученные цифры | Проверка результата |
|---|---|---|---|---|
| Из любой системы в десятичную | Разложение по степеням основания | Умножить каждую цифру на вес её разряда и сложить результаты. | Слагаемые показывают вклад разрядов в значение числа. | Сверить сумму с обратным переводом или оценить её по разрядам. |
| Из десятичной системы в систему с основанием b | Последовательное деление на b | Делить на b, затем делить полученные частные, пока частное не станет 0. | Остатки — цифры разрядов, от младшего к старшему. | Разложить запись по степеням b и сравнить значение с исходным. |
| Перевод между двумя недесятичными системами через десятичную | Два последовательных преобразования | Сначала разложить исходную запись, затем разделить десятичное значение на новое основание. | На первом шаге получается десятичное значение, на втором — цифры новой записи. | Выполнить обратный перевод и сравнить значения. |
| Перевод между двоичной, восьмеричной и шестнадцатеричной системами группировкой разрядов | Группировка двоичных разрядов | Разбить двоичную запись справа налево по 3 разряда для основания 8 или по 4 для основания 16. | Каждая группа соответствует одной цифре восьмеричной или шестнадцатеричной записи. | Перевести обе записи в десятичную систему и сравнить. |
Сначала определите направление перевода и выберите соответствующий приём. Если прямая группировка не подходит, используйте десятичную систему как промежуточный этап. Проверка должна подтвердить, что обе записи обозначают одно и то же значение.
В двоичной записи разряды справа налево имеют веса 2⁰, 2¹, 2² и далее. Нулевые разряды тоже учитываются, хотя их вклад равен нулю. Раскладываем число и складываем ненулевые слагаемые.
Ответ: (101101)₂ = 45₁₀. Такой способ удобен тем, что значение каждой цифры определяется её разрядом, а не только самой цифрой.
Нужно получить цифры основания 8. Деление на 8 выделяет младший разряд через остаток, а частное сохраняет оставшуюся часть числа. Продолжим деления, пока частное не станет нулём.
Ответ: 347₁₀ = 533₈. Проверим: 5·8² + 3·8 + 3 = 320 + 24 + 3 = 347.
Напрямую делить шестнадцатеричную запись на 5 неудобно, поэтому сначала найдём её десятичное значение. В шестнадцатеричной системе A означает 10. Затем применим деление с остатком на новое основание.
Ответ: (2A3)₁₆ = (10200)₅. Обратная проверка показывает, что преобразование сохранило значение числа.
Недопустимая цифра. Восьмеричная запись не может содержать цифру 8, потому что её допустимые цифры — от 0 до 7. Ошибку допускают, когда переносят цифру из десятичной записи, не проверяя основание. Проверьте каждую цифру: она должна быть меньше основания.
Остатки читают сверху вниз. Так младший разряд ошибочно становится старшим. Это происходит потому, что остатки записывают по мере вычислений и принимают этот порядок за порядок цифр числа. Проверьте, что первый найденный остаток стоит справа, и прочитайте список снизу вверх.
Пропускают нулевой разряд или неверно выбирают степень основания. Тогда цифры сдвигаются, а значение записи меняется, хотя сами ненулевые цифры могут казаться расставленными верно. Ошибка возникает, если выписать только ненулевые слагаемые и потерять место нуля. Подпишите степени от нулевой справа и включите все позиции в разложение.
Основание путают со значением числа. Запись 101₂ — не десятичное число 101, а число, записанное двоичными цифрами. Путаница возникает, когда основание не указывают или не учитывают нижний индекс. Переведите запись через степени основания: 101₂ = 1·2² + 0·2 + 1 = 5₁₀.
Для перевода нужны степени натуральных чисел, деление с остатком и понимание позиционной записи. Эти знания помогают вычислить веса разрядов и определить цифры новой записи. Дальше тема пригодится при изучении представления данных в памяти компьютера и работе с двоичной, восьмеричной и шестнадцатеричной системами. Оба основных приёма — разложение по степеням и последовательное деление — представляют собой пошаговые алгоритмы.
Почему остатки при делении нужно читать снизу вверх?
Первый остаток показывает цифру младшего разряда — разряда единиц нового основания. Следующие остатки соответствуют разрядам всё большего веса, поэтому записывать их нужно в обратной последовательности.
Можно ли переводить число сразу из одной недесятичной системы в другую?
Да, но универсальный способ — сначала перевести число в десятичную систему, а затем из неё в нужную. Для двоичной, восьмеричной и шестнадцатеричной систем часто удобнее группировать двоичные разряды.
Как понять, какие цифры разрешены в системе с данным основанием?
Допустимы цифры от 0 до b − 1, где b — основание системы. Например, в системе с основанием 8 используются цифры от 0 до 7, а в шестнадцатеричной после 9 применяют A, B, C, D, E и F.
Зачем при переводе раскладывать число по степеням основания?
Так можно определить вклад каждого разряда в значение числа. Сложив эти вклады, мы получаем число в десятичной системе и можем далее переводить его в систему с другим основанием.
Как проверить, что результат перевода получен правильно?
Переведите полученную запись обратно в исходную систему или сначала вычислите её десятичное значение. Если оно совпадает со значением исходного числа, перевод выполнен верно.
§ 11. Перевод целых чисел из одной системы счисления в другую