Особливості арифметичних операцій з двійково-десятковими операндами
Додавання-віднімання десяткових двійково-кодованих операндів може бути реалізоване на основі тих же принципів, що і двійкові операнди з урахуванням лише особливостей підсумовування десяткових цифр у двійковому їхньому представленні. Ці особливості обумовлені тим, що, по-перше, правила формування десяткового переносу відрізняються від правил формування двійкового переносу і, по-друге, сума двійкових кодів десяткових цифр, отримана за правилами двійкової арифметики, не завжди дорівнює їхній сумі, отриманої за десятковими правилами. Нехай, наприклад, у ДДК "8421" задані десяткові цифри Х = 1001 і Y = 1000 Тоді сума цих десяткових цифр за двійковими правилами дорівнює 10001, а по десятковим - 0001 0111. У той же час, якщо Х = 0011 і Y = 0100, то сума цих цифр представляється однаково як у двійковому, так і у десятковому кодах - 0111.
З цих причин при використанні ДДК, що володіють властивістю адитивності (полягає в тому, що ДДК суми десяткових цифр можна отримати як суму ДДК доданків), підсумовування десяткових цифр у двійковому представленні проводять у два етапи. На першому етапі підсумовують двійкові представлення десяткових цифр за правилами двійкової арифметики. На другому етапі проводять корекцію попереднього результату шляхом додавання або вирахування деякого виправлення для утворення правильного представлення десяткової цифри і десяткового переносу в старший десятковий розряд. Величина коригувального виправлення залежить від величини некоректованого результату.
Існує два алгоритми додавання двійково-десяткових чисел. Розглянемо їх:
Додавання модулів десяткових чисел з однаковими знаками.
1. Один із доданків зображується в коді із залишком 6, а другий – в коді “8421”
2. Додавання двійкові-десяткових модулів виконується за правилами двійкової арифметики.
3. Якщо при додаванні тетрад отримується модуль більший за 10, то автоматично виконується перенесення в наступну тетраду. В цьому випадку результат в цій тетраді отримується в 2-10 коді 8-4-2-1 і корекція для неї не потрібна.
4. Якщо при додаванні у будь-яких тетрадах перенесення відсутні, то для отримання дійсного результату до кодів цих тетрад необхідно додати 1010 (тобто відняти залишок 6, який є доповненням до 16, тобто 1010 ). Якщо виникають міжтетрадні перенесення, то на етапі корекції вони не враховуються.
Розглянемо приклад, коли А<0, В<0, А = - 9310, В = - 4810
Потрібно виконати операцію додавання абсолютних значень А і В та до результату додати знак мінус.
Потрібна корекція | → | ´ | • | Ü | • | • | • | • | Ü | • | • | ||||||
А | → | + | |||||||||||||||
В | → | ||||||||||||||||
зал.6 | → | ||||||||||||||||
Не враховується | → | • | • | • | |||||||||||||
+ | |||||||||||||||||
результат додавання |
Додавання модулів десяткових чисел з різними знаками.
1. Модуль додатного числа представляємо в прямому коді 8-4-2-1;
модуль від'ємного числа - в додатковому коді.
2. Далі виконуються пункти 2, 3, 4 алгоритму додавання десяткових чисел з однаковими знаками.
3. Якщо при додаванні тетрад виникає перенесення із старшої тетради, то воно губиться, а результат записується у прямому коді.
4. Якщо при додаванні тетрад не виникає перенесення із старшої тетради, то результату присвоюється знак мінус. Тобто результат отримується в додатковому коді. В цьому випадку необхідно перейти до прямого коду.
5. Для отримання вірного результату необхідна корекція прямого коду по всім тетрадам.
Розглянемо приклад, коли А>0; В < 0 / А = 49; В = - 238
ВПК | |||||||||||||||||
ВОК | + | ||||||||||||||||
ВДК | |||||||||||||||||
Перенос відсутній, результат “─” | → | ´ | • | • | Ü | • | • | Ü | |||||||||
АПК | + | ||||||||||||||||
ВДК | |||||||||||||||||
• | • | • | |||||||||||||||
+ | |||||||||||||||||
Корекція | → | ||||||||||||||||
(А+В)ДК | |||||||||||||||||
+ | |||||||||||||||||
(А+В)ПК | |||||||||||||||||
´• | • | • | ´• | • | • | ´• | • | • | |||||||||
+ | |||||||||||||||||
Корекція | → | ||||||||||||||||
Правильний результат | |||||||||||||||||
Відповідь | ─ |
Розглянемо приклад, коли А>0; В < 0 / А = 143; В = - 58
ВПК | |||||||||||||||||
ВОК | + | ||||||||||||||||
ВДК | |||||||||||||||||
Перенос є результат “+” | → | • | • | • | • | ||||||||||||
АПК | + | ||||||||||||||||
ВДК | |||||||||||||||||
(А+В)ПК | |||||||||||||||||
´• | • | • | ´• | • | |||||||||||||
+ | |||||||||||||||||
Корекція | → | ||||||||||||||||
Правильний результат | |||||||||||||||||
Відповідь | + |
Завдання для самоконтролю
- Виконати додавання у ДДК наступних чисел:
А) Х=+1510 та У=+1210; Б) С= -3910 та D=+2010; В) M=+10410 та N= -5510; Г) А= -3310 та В= - 2410
Тема для самостійного опрацювання (Лекція №7с):
Операції над 2/10 числами з корекцією результату
Зробити стислий конспект.