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

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

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






Обозначим преобразование числа Z, представленного в р- ричной системе счисления в представление в q -ричной системе как Zp→Zq. Теоретически возможно произвести его при любых q и р. Однако подобный прямой перевод будет затруднен тем, что придется выполнять операции по правилам арифметики недесятичных систем счисления (полагая в общем случае, что p, q ≠10).

По этой причине более удобными с практической точки зрения оказываются варианты преобразования с промежуточным переводом Zp →ZrZq с основанием r, для которого арифметические операции выполнить легко. Такими удобными основаниями являются r=1 и r=10, т. е. перевод осуществляется через унарную или десятичную систему счисления.

Преобразование Zp → Z 1Zq

Идея алгоритма перевода предельно проста: положим начальное значение Zq:=0; из числа Zp вычтем 1 по правилам вычитания системы p, т.е. Z p:=Z p - 1, и добавим ее к Zq по правилам сложения системы q, т.е. Zq:=Zq +1. Будем повторять эту последовательность действий, пока не достигнем Zp= 0. Правила сложения с 1 (инкремента) и вычитания 1 (декремента) могут быть записаны так, как представлено в табл. 3.1.

(Страница37)

Таблица 3.1. Правила сложения и вычитания 1

Для системы p Для системы q
(p - 1) - 1=р - 2 0+1=1
(p - 2) - 1=p - 3 1+1=2
... ...
1 - 1=0 (q - 2)+1=q - 1
0 - 1=π(р - 1) (q - 1)+1=π. 0

Примечание: π; — перенос в случае инкремента или заем в случае декремента.

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

Преобразование Zp →Zw → Zq

Очевидно, первая и вторая часть преобразования не связаны друг с другом, что дает основание рассматривать их по отдельности. Алгоритмы перевода Zw →Zq вытекают из следующих соображений. Многочлен (3.1) для Zq может быть представлен в виде:

(3.2)

где m — число разрядов в записи Z p, a bj (j= 0,..., m-1) — цифры числа Zq.

Разделим число Zq на две части по разряду номер i. Число, включающее m-i разрядов с (m- i)-го по i- й, обозначим γ i , а число с i разрядами с (i -1)-го по 0-й — δ i. Очевидно,

Позаимствуем из языка PASCAL обозначение двух операций: div — результат целочисленного деления двух целых чисел и mod — остаток от целочисленного деления (13 div 4=3; 13 mod 4=1).

(Страница38)

Теперь если принять то в (3.2) усматривается следующее рекуррентное соотношение: из которого, в свою очередь, получаются выражения:

(3.3)

Аналогично, если принять , то для правой части числа будет справедливо другое рекуррентное соотношение: из которого следуют:

(3.4)

Из соотношений (3.3) и (3.4) непосредственно вытекают два способа перевода целых чисел из десятичной системы счисления в систему с произвольным основанием q.

Способ 1 является следствием соотношений (3.3), предполагающий следующий алгоритм перевода:

1. Целочисленно разделить исходное число (Z10) на основании новой системы счисления (q) и найти остаток от деления — это будет цифра 0-го разряда числа Zq.

2. Частное от деления снова целочисленно разделить на q с выделением остатка; процедуру продолжать до тех нор, пока частное от деления не окажется меньше q.

3. Образовавшиеся остатки от деления, поставленные в порядке, обратном порядку их получения, и представляю Zq.

Пример 3.1

Выполнить преобразование 12310 → Z5. Результат — на рис. 3.1

Рис. 3.1. Результат выполнения примера 3.1

Остатки от деления (3, 4) и результат последнего целочисленного деления (4) образуют обратный порядок цифр нового числа. Следовательно, 12310=4435.

Необходимо заметить, что полученное число нельзя читать как "четыреста сорок три", поскольку десятки, сотни, тысячи и прочие подобные обозначения чисел относятся только к десятичной системе счисления. Прочитывать число следует простым перечислением его цифр с указанием системы счисления ("число четыре, четыре, три в пятеричной системе счисления").

Способ 2 вытекает из соотношения (3.4), действия производятся в соответствии со следующим алгоритмом:

1. Определить m-1 — максимальный показатель степени в представления числа по форме (3.1) для основания q.

2. Целочисленно разделить исходное число (Z10) на основание новой системы счисления в степени m-1 (т. е. qm - 1) и найти остаток от деления; результат деления определит первую цифру числа Zq.

3. Остаток от деления целочисленно разделить на gm - 2, результат деления принять за вторую цифру нового числа; найти остаток; продолжать эту последовательность действий, пока показатель степени q не достигнет значения 0.

Продемонстрируем действие алгоритма на той же задаче, что была рассмотрена выше.

Определить m- 1 можно либо путем подбора (50=1<123; 51=5<123; 52=25<123; 53=125>123, следовательно, m-1=2), либо логарифмированием с оставлением целой части логарифма (log5123=2, 99, т.е. m-1=2).

Далее:

Алгоритмы перевода Z g →Z W явно вытекают из представлений (3.1) или (3.2): необходимо Zp представить в форме многочлена и выполнить все операции по правилам десятичной арифметики.

Пример 3.2

Выполнить преобразование 4435 →Z10.

Решение:

4435=4*52+4*51+3*50=4*25+4*5+3*1=12310.

Необходимо еще раз подчеркнуть, что приведенными алгоритмами удобно пользоваться при переводе числа из десятичной системы в какую-то иную или наоборот. Они работают и для перевода между любыми иными системами счисления, однако преобразование будет затруднено тем, что все арифметические операции необходимо осуществлять по правилам исходной (в первых алгоритмах) или конечной (в последнем алгоритме) системы счисления.

По этой причине переход, например, Z 3 → Z8 проще осуществить через промежуточное преобразование к десятичной системе Z 3 → Z10 → Z8. Ситуация, однако, значительно упрощается, если основания исходной и конечной систем счисления оказываются связанными соотношением p = qr, где r— целое число (естественно, большее 1) или r=1 /n (n>;1, целое) — эти случаи будут рассмотрены далее.







Дата добавления: 2015-04-16; просмотров: 678. Нарушение авторских прав; Мы поможем в написании вашей работы!



Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

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

Психолого-педагогическая характеристика студенческой группы   Характеристика группы составляется по 407 группе очного отделения зооинженерного факультета, бакалавриата по направлению «Биология» РГАУ-МСХА имени К...

Общая и профессиональная культура педагога: сущность, специфика, взаимосвязь Педагогическая культура- часть общечеловеческих культуры, в которой запечатлил духовные и материальные ценности образования и воспитания, осуществляя образовательно-воспитательный процесс...

Правила наложения мягкой бинтовой повязки 1. Во время наложения повязки больному (раненому) следует придать удобное положение: он должен удобно сидеть или лежать...

ТЕХНИКА ПОСЕВА, МЕТОДЫ ВЫДЕЛЕНИЯ ЧИСТЫХ КУЛЬТУР И КУЛЬТУРАЛЬНЫЕ СВОЙСТВА МИКРООРГАНИЗМОВ. ОПРЕДЕЛЕНИЕ КОЛИЧЕСТВА БАКТЕРИЙ Цель занятия. Освоить технику посева микроорганизмов на плотные и жидкие питательные среды и методы выделения чис­тых бактериальных культур. Ознакомить студентов с основными культуральными характеристиками микроорганизмов и методами определения...

САНИТАРНО-МИКРОБИОЛОГИЧЕСКОЕ ИССЛЕДОВАНИЕ ВОДЫ, ВОЗДУХА И ПОЧВЫ Цель занятия.Ознакомить студентов с основными методами и показателями...

Studopedia.info - Студопедия - 2014-2024 год . (0.009 сек.) русская версия | украинская версия