Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Temi_dlya_samostiynogo_opratsyuvannya_251.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
667 Кб
Скачать

Тема 1.4. Виконання арифметичних операцій над двійково-десятковими (2/10) числами

Лекція №7с. Операції над 2/10 числами з корекцією результату

Додавання-віднімання десяткових двійково-кодованих операндів може бути реалізоване на основі тих же принципів, що і двійкові операнди з обліком лише особливостей підсумовування десяткових цифр у двійковому їхньому представленні. Ці особливості обумовлені тим, що, по-перше, правила формування десяткового переносу відрізняються від правил формування двійкового переносу і, по-друге, сума двійкових кодів десяткових цифр, отримана за правилами двійкової арифметики, не завжди дорівнює їхній сумі, отриманої за десятковими правилами. Нехай, наприклад, у ДДК "8421" задані десяткові цифри Х = 1001 і Y = 1000 Тоді сума цих десяткових цифр за двійковими правилами дорівнює 10001, а по десятковим - 0001 0 111. У той же час, якщо Х = 0011 і Y = 0100, то сума цих цифр представляється однаково як у двійковому, так і у десятковому правилах - 0111.

З цих причин при використанні ДДК, що володіють властивістю адитивності, підсумовування десяткових цифр у двійковому представленні проводять у два етапи. На першому етапі підсумовують двійкові представлення десяткових цифр за правилами двійкової арифметики. На другому етапі проводять корекцію попереднього результату шляхом додатка або вирахування деякого виправлення для утворення правильного представлення десяткової цифри і десяткового переносу в старший десятковий розряд. Величина коригувального виправлення залежить від величини некоректованого результату.

Розглянемо як можна визначити коригувальне виправлення і правильно сформувати перенос у старший десятковий розряд для ДДК "8421". Для цього складемо таблицю двійкових сум, представлень після першого етапу додавання, правильних представлень у ДДК "8421", десяткових переносів коригувальних виправлень.

Десяткова

сума

Сума після першого етапу

s5 s4 s3 s2 s1

Правильна сума

p z4 z3 z2 z1

Корекція

c5 c4 c3 c2 c1

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

0 0 0 0 0

0 0 0 0 1

0 0 0 1 0

0 0 0 1 1

0 0 1 0 0

0 0 1 0 1

0 0 1 1 0

0 0 1 1 1

0 1 0 0 0

0 1 0 0 1

0 1 0 1 0

0 1 0 1 1

0 1 1 0 0

0 1 1 0 1

0 1 1 1 0

0 1 1 1 1

1 0 0 0 0

1 0 0 0 1

1 0 0 1 0

1 0 0 1 1

0 0 0 0 0

0 0 0 0 1

0 0 0 1 0

0 0 0 1 1

0 0 1 0 0

0 0 1 0 1

0 0 1 1 0

0 0 1 1 1

0 1 0 0 0

0 1 0 0 1

1 0 0 0 0

1 0 0 0 1

1 0 0 1 0

1 0 0 1 1

1 0 1 0 0

1 0 1 0 1

1 0 1 1 0

1 0 1 1 1

1 1 0 0 0

1 1 0 0 1

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

0 0 1 1 0

0 0 1 1 0

0 0 1 1 0

0 0 1 1 0

0 0 1 1 0

0 0 1 1 0

0 0 1 1 0

0 0 1 1 0

0 0 1 1 0

0 0 1 1 0

З таблиці видно, що якщо результат, отриманий на першому етапі, знаходиться в межах від 0 до 9, то коректувати його немає необхідності, а двійковий і десятковий перенос у цьому випадку збігаються. Якщо ж результат першого етапу знаходиться в межах від 10 до 19, то для утворення правильної суми p z4 z3 z2 z1 до попередньої суми s5 s4 s3 s2 s1 необхідно додати коригувальне виправлення 00110. Помітимо, що ознакою перебування суми першого етапу в діапазоні від 10 до 19 може служити наявність одиничного значення переносу p. Таким чином, якщо при додатку корекції перенос p=0, то як правильну суму необхідно взяти результат першого етапу, якщо ж p=1, то як правильну суму необхідно взяти відкоректований результат. З обліком викладеного ГСА додавання двійково-десяткових цифр А і B можна представити на рис. 1, а. Тут регістр PD необхідний для дублювання результату першого етапу до того, як буде визначене значення p.

Очевидно, що одержати правильну суму в підсумку можна і без дублювання попередньої суми відповідно до ГСА на рис. 1, б. Такий алгоритм містить на одну операторну вершину менше, ніж попередній, однак реалізація оператора відновлення правильного результату (PZ: = PS-00110) може зажадати великих тимчасових витрат, чим оператора пересилання (PD:=PS).

Помітимо також, що при додаванні-відніманні багато розрядних десяткових операндів дії, що передбачаються алгоритмами на рис. 1, повинні виконуватися по кожному десятковому розряді (у ДДК "8421" - по кожній тетраді двійкових розрядів).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]