Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МПТ_L_к.doc
Скачиваний:
13
Добавлен:
27.08.2019
Размер:
20.33 Mб
Скачать

5.4. Двійково-десяткова арифметика.

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

Додавання десяткових чисел, кожне з яких має тільки один десятковий розряд і кодується двійковою тетрадою (десятковий двійково кодований упакований формат), виконується так, як додавання 4-х розрядних двійкових чисел без знаку, за виключенням того випадку, коли результат в тетраді, перевищує 1001 (тобто 9). В цьому випадку необхідно виконувати десяткову корекцію. Корекція результату виконується додаванням до двійкового числа коду тетроди числа 6, тобто 0110, якщо було перенесення 1 із молодшої тетради (в якій знаходиться результат додавання) в старшу, або якщо число в молодшій тетраді перевищує 9. Перенесення, яке виникає при перевищені результату числа 9, треба враховувати при додаванні багаторозрядних двійково-десяткових чисел, додаючи його наступного старшого розряду.

Приклади додавання однорозрядних чисел:

4 + 5 = 9 5 + 9 = 14 9 + 9 = 18

0100+0101=1001 0101+1001=1110 1001 + 1001 = 1 0010

(не перевищує 9) (перевищує 9) (перевищує 9 з перенесенням 1)

(і є результатом) результат вимагає результат вимагає

(без корекції) корекцію +0110 (6 ) корекцію +0110 (6 )

результат: (10 +4 ) 1 0100 результат: (10 +8 ) 1 1000.

Приклад додавання багаторозрядних чисел:

1889 0001 1000 1000 1001

+ 6376 0110 0011 0111 0110

= 8265 = 0111 1011 1111 1111

+ 0110 +0110 +0110 проводимо корекцію +6

+ 1 = 0101

+ 1 =0110 (5 )

(6 )

+ 1 = 0010

1000 (2 )

(8 ). Загальний результат :8265 .

5.4.2 Додавання двійково-десяткових чисел із знаком.

Алгоритми додавання та віднімання двійково-десяткових чисел із знаком розглянемо на наступних прикладах.

5.4.2.1 (+428) + 316 =+744. Нижче наводимо цю операцію у 2-10 коді:

(знаки)

0000 0100 0010 1000 (+428)

+ 0000 0011 0001 0110 (+316)

= 0000 0111 0011 1110

(корекція останньої тетради) + 0110

Результат: = 0000 0111 0100 0100

(+) (7) (4) (4).

5.4.2.2 (+428) - 316 =+112. Нижче наводимо цю операцію у 2-10 коді:

Операцію віднімання МП виконує, як окремий вид додавання, тому від’ємник повинен бути наданий у доповнюючому коді. Доповненням до числа 316 – є число 684, так як їх сума дорівнює 1000.

(знаки)

0000 0100 0010 1000 (+428)

+ 1001 0110 1000 0100 (-684)

= 1001 1010 1010 1100

(всі тетради крім знакової коригуємо) + 0110 0110 0110

= 1010 0001 0010 0010

(тепер вимагає корекцію знакова тетрада) +0110

= 1 0000 0001 0010 0010..

Результат: (+) (1 ) (2 ) (2 )

Наявність перенесення «1» із знакової тетради в неіснуючий розряд, показує

що результат знаходиться у прямому коді.

5.4.2.3 (-428) + 316 = -112. Нижче наводимо цю операцію у 2-10 коді:

Доповненням до числа 428 – є число 571 + 1 = 572.

1001 0101 0111 0010 (-572)

+ 0000 0011 0001 0110 (+316)

= 1001 1000 1000 1000

(-) (8 ) (8 ) (8 )

Відсутність перенесення в неіснуючий розряд показує, що отриманий результат (-888 ) знаходиться у доповнюючому коді. Прямий код (модуль числа) дорівнює: 1000888 =112.

5.4.2.4 (-428) - 316 = -744. Нижче наводимо цю операцію у 2-10 коді:

Доповненням до числа 428 – є число 571 + 1 = 572. Доповненням до числа 316 – є число 684.

1001 0101 0111 0010 (-572)

+ 1001 0110 1000 0100 (-684)

= 1 0010 1011 1111 0110

(корекція знакової тетради , з неї було + 0110 0110 0110

перенесення, та ще двох, крім останньої) = 1001 0010 0101 0110

(-) (2 ) (5 ) (6 )

Відсутність перенесення після корекції в в неіснуючий розряд показує, що отриманий результат (-256 ) знаходиться у доповнюючому коді. Прямий код (модуль числа) дорівнює: 1000256 = 744.

По аналогії розглянутих двійкової та двійково-десяткової арифметик використовується і шістнадцяткова арифметика, яка значно скорочує записи двійкових чисел.