Алгоритм перевода из десятичной системы
Чтобы перевести число из десятичной системы счисления в систему с основанием \(q\), целую часть последовательно делят с остатком на \(q\), а дробную часть последовательно умножают на \(q\). Эти два алгоритма основаны на разложении числа по разрядам.
Что означает основание системы
Система счисления с основанием \(q\) использует цифры от \(0\) до \(q-1\). Значение цифры зависит от её разряда: справа налево разряды целой части имеют веса \(q^0,q^1,q^2\) и так далее, а после запятой — \(q^{-1},q^{-2},q^{-3}\). Например, в двоичной системе используются только цифры 0 и 1, в восьмеричной — от 0 до 7, в шестнадцатеричной — от 0 до 9 и букв A–F.
Основание \(q\) — количество цифр, используемых в системе счисления. Любая цифра записи должна удовлетворять условию \(0\le a_i<q\).
Подробное правило записи числа по степеням основания разобрано на странице алгоритм перевода в десятичную систему. Здесь выполняется обратное действие: из десятичной записи нужно получить цифры новой системы.
Перевод целой части делением с остатком
Для целого десятичного числа применяют деление с остатком. Число делят на основание новой системы \(q\), записывают остаток, частное снова делят на \(q\) и продолжают, пока частное не станет равно нулю.
Остатки от последовательных делений на \(q\), прочитанные снизу вверх, образуют запись исходного числа в системе с основанием \(q\). Первый полученный остаток — младшая цифра, последний ненулевой остаток — старшая цифра.
- Разделите десятичное число на \(q\).
- Запишите остаток справа от результата деления.
- Делите полученное частное на \(q\), пока частное не станет нулём.
- Прочитайте записанные остатки в обратном порядке — снизу вверх.
Оформляйте вычисления таблицей: в одной строке — делимое, частное и остаток. Так не теряется порядок остатков. Страница чтение остатков снизу вверх помогает отдельно закрепить последний шаг алгоритма.
Разобранный пример: перевод в двоичную систему
Переведём число \(156_{10}\) в двоичную систему. Основание новой системы равно \(2\), поэтому на каждом шаге делим на 2.
Проверим запись \(10011100_2\): \(1\cdot2^7+0\cdot2^6+0\cdot2^5+1\cdot2^4+1\cdot2^3+1\cdot2^2+0\cdot2^1+0\cdot2^0=128+16+8+4=156\). Значит, \(156_{10}=10011100_2\).
В каком порядке нужно читать остатки при переводе целого числа из десятичной системы?
Перевод дробной части умножением
Для дробной части используют другой алгоритм: дробную часть последовательно умножают на основание \(q\). Целая часть каждого произведения становится очередной цифрой результата после запятой. Затем для следующего шага берут дробную часть произведения.
При последовательном умножении дробной части на \(q\) целые части произведений, прочитанные сверху вниз, образуют цифры дробной части в новой системе. Процесс заканчивается, если дробная часть стала нулём, или продолжается до требуемой точности.
Например, чтобы перевести \(0{,}625_{10}\) в двоичную систему, сначала умножаем \(0{,}625\) на 2. Полученная целая часть — первая цифра после запятой. Далее повторяем действие с дробной частью.
Если переводится число с целой и дробной частями, алгоритмы применяют независимо: целую часть переводят делением, дробную — умножением, а затем соединяют результаты. Например, целая часть \(156\) даёт \(10011100_2\), а дробная часть \(0{,}625\) — \(0{,}101_2\), поэтому \(156{,}625_{10}=10011100{,}101_2\).
Подробнее о переводе дробей умножением можно прочитать на странице перевод дробей умножением. При отдельном изучении дробной части полезны страницы перевод дробной части и период перевода дроби.
Точность и период дроби
Не всякая десятичная дробь имеет конечную запись в другой системе. Если при умножении дробная часть никогда не становится нулём, цифры будут повторяться или продолжаться бесконечно. В таком случае перевод выполняют до указанного числа знаков после запятой или до появления периода.
1. Остатки при переводе целой части читают сверху вниз. Правильно — снизу вверх. 2. При переводе дроби записывают не дробную, а целую часть каждого произведения. 3. После умножения используют новую дробную часть, а не всё произведение. 4. В системе с основанием \(q\) нельзя использовать цифру \(q\) или большую цифру. 5. Нельзя смешивать основания: запись \(1011\) без указания основания неоднозначна.
Целая часть — деление, остатки снизу вверх. Дробная часть — умножение, целые части сверху вниз. Основание операции равно основанию системы, в которую выполняется перевод.
Связь с другими алгоритмами
Этот материал является частью страницы перевод из десятичной системы. Перед изучением полезно повторить деление с остатком и перевод дробей умножением. Для задач, где нужно сравнивать разряды или выполнять действия над записью числа, пригодятся смещение по разрядам и разность разрядов. После освоения алгоритма переходите к разбору задач на системы счисления.
Проверь себя
Главное
- Основание \(q\) определяет допустимые цифры и разрядные веса.
- Целую часть переводят последовательным делением на \(q\) с остатком; остатки читают снизу вверх.
- Дробную часть переводят последовательным умножением на \(q\); целые части произведений читают сверху вниз.
- Если дробная часть не становится нулём, перевод округляют или записывают с периодом.
- Результат всегда можно проверить обратным переводом в десятичную систему.