Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Двоично- десятичное вычитание в коде 8-4-2-1




Двоично-десятичное сложение в коде 8-4-2-1

В табл. 1.3 представлено соответствие десятичных цифр и их обозначений в двоично-десятичном коде 8-4-2-1.

Сформулируем правила сложения в коде 8-4-2-1 на основе анализа числовых примеров в пределах одной декады для десятичного и двоично-десятичного кодов.

Таблица 1.3

Десятич. цифра двоич.-дес. код
         
         
         
         
         
         
         
         
         
         

 

1) 3+5=8 0 0 1 1 как видим, результаты совпадают

+ 0 1 0 1

1 0 0 0

2) 8+9=17 1 0 0 0

+ 1 0 0 1

1 0 0 0 1 результат неправильный

+ 0 1 1 0 выполняем коррекцию

1 0 1 1 1 теперь результат верен

3) 6+8=14 0 1 1 0

+ 1 0 0 0

1 1 1 0 сумма не совпадает

+ 0 1 1 0 коррекция

1 0 1 0 0 результат совпал с десятичным примером.

Анализируя приведенные примеры, можно отметить следующие особенности.

В примере 1) двоичное сложение в пределах десятичной декады дает правильный результат, так как сумма меньше 9 (меньше 1001 в двоично-дес. коде).

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

Сформулируем правила двоично-десятичного сложения:

- выполнить двоичное сложение внутри каждой декады с учетом возникающих между декадами переносов;

- переносы образуются из данной декады в следующих случаях:

если перенос возникает автоматически во время двоичного сложения, или если образовавшаеся сумма больше 9 (1001);

- к содержимому всех декад, из которых возникали переносы, прибавить для коррекции 6 (0110).

Выполним для примера по рассмотренным выше правилам сложение многоразрядных десятичных чисел в двоично-десятичном коде.

Выполним S = А + В сначала в десятичном коде

А = 6 5 3 8 0 4

+ В = 1 7 5 9 9 8

S = 8 2 9 8 0 2

Теперь вычислим этот пример в двоично- десятичном коде.

1 1 1 1 дв.-дес. переносы

А = 0 1 1 0 0 1 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0

+В = 0 0 0 1 0 1 1 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 0

1 0 0 0 1 1 0 0 1 0 0 1 0 0 1 0 1 0 1 0 1 1 0 0 двоичная сумма

+ 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 коррекция

S = 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 дв.-дес. сумма

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

Операцию вычитание в коде 8-4-2-1 можно реализовать, как и при двоичном вычитании, на основе прямого, обратного или дополнительного кодов.

В машинной арифметике, как известно, чаще всего применяется дополнительный код числа. Рассмотрим правила двоично-десятичного вычитания при использовании дополнительного кода на основе общих положений (см.1.5.2).

Прежде всего необходимо разработать методику нахождения дополнительного кода отрицательного числа, представленного в двоично- десятичном коде 8-4-2-1.

Вычислим S = А – В. Примем для простоты, что А > 0, В > 0, А > В.

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

A =. 8 3 7 5 4

- B =. 2 5 4 9 6 (1.9)

S =. 5 8 2 5 8

Заменим вычитание сложением в дополнительном коде. Будем искать псевдосумму С = [А]п + [-В]д

Сначала в соответствии с правилами определим дополнительный код

[-B]д = 1+ (- B) = 1 – B = 1. 0 0 0 0 0

-. 2 5 4 9 6 (1.10)

. 7 4 5 0 4

Продолжим [А]п =. 8 3 7 5 4 (1.11)

+[-B]д =. 7 4 5 0 4

С = 1.5 8 2 5 8

Анализируя численное значение псевдосуммы С в выражении (2.1), видим, что слева от точки появилась цифра 1,которая представляет собой единицу переноса за пределы разрядной сетки и является признаком того, что результат положителен. Поэтому

С =. 5 8 2 5 8 = S

и совпадает с результатом, полученным выше при вычитании в прямых кодах (1.9).

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

Запишем десятичное число В виде последовательности цифр, которые могут быть представлены в десятичном или двоично-десятичном кодах.

B = { b1 b2 b3 … bi … bn } (1.12)

В таком же виде представим переменную, обозначающую дополнительный код того же числа.

[-B]д = { b1д b2д b3д … biд … bnд } (1.13)

Анализ процедуры получения дополнительного кода десятичного числа (1.10) показывает, что младшая цифра дополнительного кода получается вычитанием из десяти цифры младшего разряда исходного числа, а десятичные цифры всех остальных разрядов дополнительного кода получаются вычитанием из девяти соответствующих цифр прямого кода. Запишем выражение для вычисления цифры произвольного разряда дополнительного кода (кроме i = n) и преобразуем его, заменяя операцию вычитание сложением в дополнительном коде.

[-bi]д = 9- bi = 16 – 7 – bi = (16 – bi) + [ - 7 ]д16 =

= [- bi ] o16 + (16 – 7 + 1) = [- bi ]o16 + 10 (1.14)

Используя выражение (2.4), запишем аналогичное соотношение для

i = n [- bn ]д = [ - bn ]o16 + 11

Сформулируем правила получения дополнительного кода для двоично- десятичного числа:

- инвертировать все двоичные цифры (получить обратный код);

- ко всем декадам (кроме последней справа) прибавить 1010 = 10102;

- к последней декаде прибавить 1110 = 10112;

- в процессе сложения переносы внутри декады учитываются;

- возникающие междекадные переносы игнорируются.

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

(- В) = -- 25496 из примера (1.10).

В = 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 1 0

[В]о = 1 1 0 1 1 0 1 0 1 0 1 1 0 1 1 0 1 0 0 1

+ 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1

[-B]д2-10 = 0 1 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0

[-B]д10 = 7 4 5 0 4

Как видим, дополнительный код двоично-десятичного числа [-B]д2-10 равен дополнительному коду десятичного числа [-B]д10.

Вычислим теперь по правилам сложения в двоично-десятичном коде пример, выполненный в (1.11).

1 1

[A]п2-10 = 1 0 0 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 0

+ [-B]д2-10 = 0 1 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0

= 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0

+ 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0

С = 1 0 1 0 1 1 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0

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

S2-10 = 0 1 0 1 1 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0

S10 =. 5 8 2 5 8




Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 2125; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




Генерация страницы за: 0.018 сек.