logo
Informatics

3.3.5. Перевод чисел из одной системы счисления в другую

При решении задач с помощью ЭВМ исходные данные обычно задаются в десятичной системе счисления; в этой же системе, как правило, нужно получить и окончательные результаты. Так как в современных ЭВМ данные кодируются в основном в двоичных кодах, то, в частности, возникает необходимость перевода чисел из десятичной в двоичную систему счисления и наоборот.

Задача перевода заключается в следующем. Пусть известна запись числа x в системе счисления с каким-либо основанием Р: pn... p0p-1p-2 ..., ; требуется найти запись этого же числа x в системе счисления с другим основанием Q: qs... q0q-1q-2 ....

При рассмотрении правил перевода нужно учитывать, средствами какой арифметики должен быть осуществлен перевод, т.е. в какой системе счисления должны быть выполнены все необходимые для перевода действия. Условимся считать, что перевод должен осуществляться средствами Р-ичной арифметики.

Перевод QР. Задача перевода произвольного числа x, заданного в системе счисления с основанием Q, в систему счисления с основанием Р сводится к вычислению полинома вида

X=qnQn+...+q0Q0+q-1Q-1...+q-mQ-m.... (3.11)

Для получения Р-ичного изображения выражения (3.11) необходимо все цифры q, и число Q заменить Р-ичными изображениями и выполнить арифметические операции в Р-ичной системе счисления.

Перевод РQ. Так как для перевода любого числа достаточно уметь переводить его целую и дробную части, рассмотрим отдельно эти два случая.

1. Перевод целых чисел. Пусть известна запись целого числа N в системе счисления с основанием Р и требуется перевести это число в систему счисления с основанием Q. Так как N- целое, то его запись в Q-ичной системе счисления имеет вид N=qsQs+...+q0Q0, где qi - искомые цифры Q-ичной системы. Таким образом, при условии что N0=N, перевод чисел с использованием Р-ичной арифметики осуществляется по следующим рекуррентным формулам:

qi=Q[Ni/Q], Ni+1=[Ni/Q] (i=0, 1, 2, ...).

Этот процесс продолжается до тех пор, пока не будет получено Ni+1=0.

2. Перевод дробных чисел. Пусть необходимо перевести в Q-ичную систему счисления правильную дробь x (0<x<1), заданную в P-ичной системе счисления. Число x в Q-ичной системе счисления можно представить в виде полинома x=q-1Q-1+q-2Q-2+...+ q-mQ-m+... где q-i, (1=1, 2, ...) - искомые коэффициенты Q-ичного разложения числа. При условии, что x0=x, перевод дроби с использованием P-ичной арифметики осуществляется по следующим рекуррентным формулам:

q-(i+1)=[xiQ], xi+1=[xiQ] (i=0, 1, 2, ...).

Этот процесс продолжается до тех пор, пока не будет получено xi+1=0 или не будет достигнута требуемая точность изображения числа.