Урок №13. Алгоритмы перевода чисел из Р-ичной системы счисления в десятичную и обратно.
Для перевода целого десятичного числа в систему счисления с основанием q следует:
- последовательно выполнять деление данного числа и получаемых целых частных на основание новой системы счисления до тех пор, пока не получится частное, равное нулю;
- полученные остатки, являющиеся цифрами числа в новой системе счисления, привести в соответствие алфавиту новой системы счисления;
- составить число в новой системе счисления, записывая его, начиная с последнего остатка.
Рассмотрим примеры перевода целых десятичных чисел в 2-ичную, 8-ричную и 16-ричную системы счисления.

Пример 4. Укажите через запятую в порядке возрастания все основания систем счисления, в которых запись десятичного числа 22 оканчивается на 4.
Поскольку запись числа в системе счисления с основанием q заканчивается на 4, остаток от деления числа 22 на q равен 4: 22 mod q = 41. Следовательно, 18 mod q = 0. Это верно для q ∈ {18, 9, 6, 3, 2, 1}.
Так как в новой системе счисления запись числа оканчивается на 4, то q > 4. Следовательно, условию задачи удовлетворяют основания: 18, 9 и 6.
Перевод целого десятичного числа, безусловно, может осуществляться по рассмотренному выше универсальному алгоритму. Но для чисел в пределах десяти тысяч (особенно если число немного больше некоторой степени двойки) бывает удобно снова воспользоваться таблицей степеней двойки.
Например: 109610 = 1024 + 72 = 1024 + 64 + 8 = 100010010002.
Здесь мы представили число в виде суммы степеней двойки: сначала взяли максимально возможное значение, не превышающее исходное число (1024 < 1096), и нашли разность между исходным числом и этим значением (72). Затем выписали степень двойки, не превышающую эту разность, и т. д. Когда исходное число было представлено в виде суммы, мы построили его двоичное представление, записав 1 в разрядах, соответствующих слагаемым, вошедшим в сумму, и 0 — во всех остальных разрядах.
Каждый из нас может выполнять арифметические операции в привычной десятичной системе счисления. Выполнять такие же операции в других системах счисления человеку непривычно, а поэтому и неудобно.
Для того чтобы перевести целое число из системы счисления с
основанием р в систему счисления с основанием q, достаточно:
- основание новой системы счисления выразить в исходной системе счисления и все последующие действия производить в исходной системе счисления;
- последовательно выполнять деление данного числа и получаемых целых частных на основание новой системы счисления до тех пор, пока не получится частное, равное нулю;
- полученные остатки, являющиеся цифрами числа в новой системе счисления, привести в соответствие алфавиту новой системы счисления;
- составить число в новой системе счисления, записывая его, начиная с последнего остатка.
При необходимости перевести целое число из системы счисления с основанием р в систему счисления с основанием q можно попытаться воспользоваться описанным выше алгоритмом. Другой способ состоит в том, чтобы свести всё к хорошо знакомым действиям в десятичной системе счисления: перевести исходное число в десятичную систему счисления, после чего полученное десятичное число представить в требуемой системе счисления (рис. 3.3).

Для перевода конечной десятичной дроби в систему счисления с основанием q следует:
- последовательно умножать данное число и получаемые дробные части произведения на основание новой системы счисления до тех пор, пока дробная часть произведения не станет равна нулю или не будет достигнута требуемая точность представления числа;
- полученные целые части произведений, являющиеся цифрами числа в новой системе счисления, привести в соответствие алфавиту новой системы счисления;
- составить дробную часть числа в новой системе счисления, начиная с целой части первого произведения.
Пример 6. Переведём число 0,187510 в двоичную систему счисления.
Выполним умножение числа 0,187510 на 2:

Здесь жирным выделены цифры, участвующие в двоичном представлении дроби, а в скобках указан номер цифры в дроби.
0,187510 = 0,00112.