Перевод правильных дробей умножением на основание новой системы

Алгоритм перевода следующий. Последовательно умножаем сначала исходное число, затем дробные части получаемых произведений на основание новой системы. При этом в целую часть будут выходить цифры записи числа в новой системе. Действия выполняются в старой системе.

Пример 11

Дано: A(10)=0,375. Найти A(2).

Решение:

Ответ:A(2)=0,011.

В примере 11 в целые части произведений вышли цифры 011. Проверим полученный результат обратным переводом:

.

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

Целесообразно пользоваться следующим правилом: точность записи числа в новой системе должна быть не ниже точности числа в старой системе. Например, если задано число A(10)=0,6, то есть с точностью до , то запись числа в двоичной системе должна иметь четыре разряда дробной части. Это обеспечит точность до (три разряда мало, так как третий разряд является более грубым округлением ). Если же исходное десятичное число задано, например, с точностью до , то принятое правило требует получения в двоичной системе семи разрядов после запятой (), в восьмеричной системе – трех разрядов (), в шестнадцатеричной системе – двух разрядов ().

При вычислениях следует использовать правила округления результатов. Другим ограничением может служить заранее заданное количество разрядов для записи числа в новой системе.

Пример 12

Дано: A(10)=0,67. Найти A(2).

Решение:

A(2)=0,10101011.

Ответ:A(2)=0,101011.

В примере 12, записав последовательно целые части произведений, получаем следующий результат: A(2)=0,10101011. Найдено восемь двоичных разрядов. Так как исходное число задано с точностью , а , то получен один лишний разряд, который используем для округления результата.

Выполним проверку. Переведем полученный результата в десятичную систему:

.

Лишние 0,002 получены в результате округления в большую сторону.

В заключение данного вопроса рассмотрим схему перевода правильной дроби. Будем использовать рассмотренное выше правило умножения дробных частей получающихся произведений на основание новой системы. Получающиеся в каждом шаге записи числа в двоичной системе в примере 13 подчеркнуты.

Пример 13

Дано: A(10)=. Найти A(2).

Решение:

Ответ:A(2)=0,1101.

Выписав подчеркнутые цифры, получаем результат A(2)=0,1101 с недостатком. Это число A(10)=. Перевод исходного числа () и результата () в десятичную дробь дает результаты: 0,818 и 0,813, соответственно.

Смешанная дробь переводится в новую систему счисления по частям: целая часть – методом деления, дробная часть – методом умножения на основание новой системы.