Метод последовательного деления на основание

Этот метод используется для перевода только целых чисел.

Пусть число A(q) требуется записать в р-ичной системе. Допустим, что такое представление получено и новое число В(р) имеет вид:

A(q) = B(p) = bn-1 bn-2 … b1 b0 (p) = bn-1´pn-1 + bn-2´pn-2 + … + b1 p1 + b0.

Разделим число A(q) на р. Так как b0<p, то в результате деления получим целую часть:

A1 = bn-1´pn-2 + bn-2´pn-3 + … + b1

и остаток b0. Отсюда следует, что остаток от деления заданного числа на основаниe р равен значению цифры младшего разряда р-ичного числа. При этом, если p<q, то остаток является цифрой р-ичной системы счисления, а при p>q остаток представляет собой число в q-ичной системе счисления, которое соответствует цифре р-ичной системы (заметим, что деление должно выполняться в q-ичной системе счисления, т.е. в системе, в которой задано исходное число).

Чтобы найти цифру b1 следует отбросить остаток b0, a А1 вновь разделить на р. Получим целую часть

А2 = bn-1´pn-3 + … b3´p + b2

и остаток b1, который равен значению цифры очередного разряда. Последовательное деление продолжается до тех пор, пока не получится частное, меньшее р. Это частное является цифрой старшего разряда искомого р-ичного числа.

Правило перевода. Чтобы перевести целое число из одной системы счисления в другую, необходимо последовательно делить это число и промежуточные частные на основание новой системы счисления, представленное в старой системе. Полученные остатки и последнее частное дадут искомое изображение р-ичного числа, причем первый остаток записывается в младший разряд, а последнее частное – в старший разряд числа.

Пример 3.10. Перевести десятичное число 38 в двоичную систему счисления.

Решение:

 

 

Ответ: B(2)=b5 b4 b3 b2 b1 b0(2)=100110(2) .

Пример 3.11. Провести обратный перевод числа B(2)=100110(2) в десятичную систему счисления.

Решение: Сначала новое основание системы счисления представим в двоичной системе: 10(10)=1010(2). Далее делим число 100110(2) на основание 1010(2).

100110

1010

10010

1010

 

Ответ: 100110(2)=b1b0 (10) = 38(10).