Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Met_uk_Pozitsionnye_sistemy_schislenia.doc
Скачиваний:
13
Добавлен:
27.05.2015
Размер:
353.79 Кб
Скачать

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

Задача перевода заключается в следующем. Пусть известна запись числа Х в системе счисления с каким либо основанием Р:

pn pn-1p1 p0 p-1 p-2 … , (8)

где pi - цифры Р-ичной системы (0 pi P-1). Требуется найти запись этого же числа X в ПСС с другим основанием Q:

qs qs-1q1 q0 q-1 q-2 …, (9)

где qi – искомые цифры Q-ичной ПСС (0 qi Q-1).

Ограничимся случаем положительных чисел, так как перевод отрицательного числа сводится к переводу его модуля и приписыванием к нему знака минус. Рассмотрим два способа перевода числа из одной ПСС в другую.

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

Способ на основе представления числа в виде многочлена по степеням основания ПСС (4). Его применяют для преобразования из Р-ичной в десятичную ПСС, хотя принципиально он применим для преобразования из любой ПСС в любую ПСС. Согласно (4) и (8) можно записать:

. (9)

Для получения 10-ого изображения числа Х необходимо все цифры pi и основание ПСС число Р в (9) заменить их изображениями в новой 10-ной ПСС и выполнить арифметические операции в 10 - ной ПСС.

Пример 1. Перевести число Х = 1011012 в десятичную ПСС. Согласно изложенному правилу

X =1011012 =1∙25 + 0∙24 + 1∙23 + 1∙22 + 0∙21 +1∙20 = 32+8+4+1 =4510.

Пример 2. Перевести число 1011.1012 в десятичную ПСС. Действуя аналогично первому примеру, получим:

X=1011.1012 = 1∙23 + 0∙22 + 1∙21 + 1∙20 + 1∙2-1 + 0∙2-2 + 1∙2-3 =

= 8 + 2 + 1 + 1/2 + 1/8 = 11.625 .

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

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

Пробразование целых чисел

Известна запись целого числа N в 10-ой ПСС. Согласно (4) запись этого числа в Q-ичной ПСС будет иметь вид:

(10)

где . Для определенияq0 разделим обе части равенства (10) нацело на Q, причём в левой части произведём деление, пользуясь правилами 10-ной арифметики, и получим:

, (11)

. (12)

В (11) скобками указано взятие целой части числа, так как мы выполняем операция целочисленного деления. В (12) - записана операция получения остатка от деления N нацело на Q. В формуле (11) q0 исчезло, так как все qi < Q. Теперь, для определения q1, к N1 можно применить те же операции:

.

Таким образом, пологая , перевод чисел с использованием 10-ной арифметики осуществляется по следующим рекуррентным формулам:

. (13)

Этот процесс продолжается до тех пор, пока не будет получено . Учитывая, что поскольку все операции выполняются в 10-ной ПСС, то в этой же ПСС будут получены искомые коэффициенты , поэтому каждый из них необходимо записать одной цифрой в новой Q-ичной.

Замечание. Рекуррентная формула – это соотношение вида:

an+1 = f(n, an ) , n=0, 1, 2, … ,

которое позволяет вычислить все члены последовательности a1 , a2 , … , , если задано a0 и вид функционального отображения f(∙).

Таким образом, для вычисления представления числа в новой ПСС необходимо:

  1. Выполнить деление нацело текущего частного Ni на основание новой ПСС (все числа представляются в 10-ой ПСС и операция выполняется по правилам 10-ой ПСС).

  2. Вычислить текущий остаток от деления нацело (qi = Ni modQ) по правилам 10-ой ПСС.

  3. Если новое частное Ni+1 не равно 0, то перейти к пункту 1.

  4. Каждый остаток, записанный в 10-ой ПСС, записываем одной цифрой в новой ПСС.

  5. Остатки записываем в обратном порядке, они дадут изображение числа в новой ПСС (последний остаток будет самой левой цифрой, а первый остаток – самой правой цифрой).

Пример 1. Перевести число N = 47 в двоичную ПСС. Применяя формулы (13), имеем:

47 | 1

23 | 1

11 | 1

5 | 1

2 | 0

1 | 1

0 |

Здесь слева от вертикальной черты пишем исходное число и частные, а справа указывается остаток от деления нацело на 2. Поскольку числа 0 и 1 в обеих ПСС (десятичной и двоичной) обозначаются одинаковыми цифрами, то переводить остатки в двоичную ПСС не требуется. Следовательно, записывая остатки в обратном порядке, имеем результат .