Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Арифметика с алгебраическими двоично-десятичными числами





 

Представление двоично-десятичных чисел в обратном и дополнительном кодах поясняется следующими примерами.

Пример

Найти дополнительный и обратный двоично- десятичный коды чисел

А10 = 6917,

А10 = 2847.

Решение

Двоично-десятичный код заданных чисел будет

А2-10 = 0110 1001 0001 0111,

В2-10 = - 0010 1000 0100 0111.

Непосредственно используя правило формирования прямого, дополнительного и обратного кодов, найдем:

[A] пк =[A] ок =[A] дк =0. 0110 1001 0001 0111, т.к. А - положительное число, поэтому записи его прямого, обратного и дополнительного кодов совпадают;

пк] = 1. 0010 1000 0100 0111,

модуль [В]ок : 1001 1001 1001 1001 = ( 105 - 1)

- 0010 1000 0100 0111 = В2-10

0111 0001 0101 0010 - результат вычитания записан. . с учетом коррекции.

 

Простое инвертирования модуля [В] пк дает значение [В] ик (инверсный код), равное

 

1101 0111 1011 1000,

которое отличается от требуемой формы модуля обратного кода тем, что каждая тетрада имеет избыточную шестерку. Обозначим такой код как «[B]ок+6».

Таким образом, модуль обратного кода двоично-десятичного числа не может быть сформирован из модуля прямого кода за счет инвертирования, как это имеет место в случае двоичного кода. Однако инвертирование при формировании обратного кода двоично-десятичного числа может быть использовано, если предварительно во все двоично-десятичные разряды (тетрады) ввести избыточную шестёрку. В этом случае для числа В имеет место:

0010 1000 0100 0111 - значение модуля записи [B]пк

+ 0110 0110 0110 0110 - двоичный код 6 для каждой тетрады

1000 1110 1010 1101 - значение модуля записи [B]пк с избыточными 6 . во всех тетрадах, т.е. получено значение . «[B]пк+6»

0111 0001 0101 0010 - значение модуля записи [B]ок , полученное . после инвертирования «[B]пк+6».

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



Данный подход иллюстрируется следующим примером.

Пример

Найти двоично-десятичные значения C1, C2, C3, C4, определяемых соответственно выражениями:

С1= А+В, С2=А-В, С3= В-А, С4=-А-В, используя модифицированный обратный код, если:

А = 3 7 8 3 и B = -5 492.

Результат представить в прямом коде. При реализации операции сложения использовать модифицированный обратный код.

Решение

Прямой двоично-десятичный код заданных чисел имеет вид

[А]пк = 0. 0011 0111 1000 0011,

[B] пк = 1. 0101 0100 1001 0010.

Расчет выражений для C1, C2, C3, C4 осуществляется следующим образом.

 

[С1] пк : * *

00. 0 0 1 1 0 1 1 1 1 0 0 0 0 0 1 1 [А]мок

+ 11. 1 0 1 0 1 0 1 1 0 1 1 0 1 1 0 1 [B] ик = [B]ок+6

11. 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 0 - сумма ([А]мок и [B] ик0), . сформированная по . правилам суммирования . двоичного

+ 0 1 1 0 0 1 1 0 - коррекция в тедрадах, где был. . перенос

11. 1 1 1 0 1 0 0 0 1 1 1 1 0 1 1 0

11. 0 0 0 1 0 1 1 1 0 0 0 0 1 0 0 1 - [С1]мпк

- 1 7 0 9 - С110 (десятичный эквивалент . С1).

При выполнении первого суммирования по правилам двоичной арифметики возникающий перенос (в тетрадах, отмеченных знаком *) унес лишнюю 6 (двоичный перенос унес из тетрады 16, а по правилам десятичного сложения он должен унести 10), что означает, что избыточная «6», введенная за счет использования инверсного кода числа вместо обратного, исчезает в тех тетрадах, где был перенос, и сохраняется в тетрадах, где перенос отсутствовал. Коррекция на +6 выполняется в тех тетрадах, где был перенос. Таким образом после коррекции во всех тетрадах будет иметь место избыточная 6, что позволяет перейти от такой записи к прямому коду результата за счет инвертирования записей всех тетрад модульной части.

 

[С4] пк : * *

11. 1 1 0 0 1 0 0 0 0 1 1 1 1 1 0 0 - [-А] ик= [-А]ок+6

+ 00 . 01 0 1 01 0 0 1 0 0 1 0 0 1 0 - [-B] мок

1 00. 0 0 0 1 1 1 01 0 000 1 1 1 0 - учет переноса при суммировании

+ 1 обратных кодов

0 0. 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1

+ 1 0 1 0 1 0 1 0 - коррекция в тедрадах, где не было . переноса.

00.0 0 01 0 1 1 1 0 0 0 0 1 0 0 1 - [С4]опк=[С4]мпк

1 7 0 9 - С410 (десятичный эквивалент).

 

При выполнении первого суммирования по правилам двоичной арифметики возникающий перенос (в тетрадах, отмеченных знаком *) унес лишнюю 6 (двоичный перенос унес из тетрады 16, а по правилам десятичного сложения он должен унести 10), что означает, что избыточная 6, введенная за счет использования инверсного кода числа вместо обратного, исчезает в тех тетрадах, где был перенос, и сохраняется в тетрадах, где перенос отсутствовал.

Коррекция на 10 выполняется в тех тетрадах, где не было переноса (прибавлением 10, которая является дополнительным кодом -6, с блокировкой переноса из тетрады заменяется операция вычитания 6 из кода тетрады). Таким образом, после коррекции во всех тетрадах будет иметь место точное значение, а так как результат положительный, то эта запись соответствует искомому прямому коду С1.

Формирование С2 и С3, в выражениях которых в операции сложения принимают участие числа с одинаковыми знаками, осуществляется за счет сложения абсолютных значений операндов с последующим присвоением полученной суммы знака одного из операндов.

Таким образом, для определения С2 и С3 выполняются следующие действия:

 

úС2ú = úС3ú:

0. 0011 0111 1000 0011 -[ú Аú]пк

+ 0. 0101 0100 1001 0010. -[ú Bú] пк

0 1000 1100 0001 0101

+ 0110 0110

0. 1001 0010 0111 0101 - [ú С2ú] пк = [ú С3ú] ПК

 

Таким образом, [С2] пк =0. 1001 0110 0111 0101, [С3] пк =

=1. 1001 0110 0111 0101.

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



 





Дата добавления: 2014-01-07; Просмотров: 1732; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



ПОИСК ПО САЙТУ:


Рекомендуемые страницы:

Читайте также:
studopedia.su - Студопедия (2013 - 2021) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление
Генерация страницы за: 0.005 сек.