Попередня сторінка          Зміст           Наступна сторінка          Електронні посібники ВНТУ

 

6.2 Додавання чисел в інверсних Д-кодах

 

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

А = 0,  a1a2…an, де аi— тетради, то

[А]пр= a1a2…an;

[A]o==;

[A]д==,

де ai ‒ доповнення до р-1=9 в усіх тетрадах; ‒ доповнення до р=10 в молодшій тетраді.

Отже, + ai = р = 10;  + ai = р ˗ 1 = 9. Зворотній код Д2 одержується простим інвертуванням цифр тетрад.

Приклад. Знайти зворотний і додатковий коди числа

А = -0.136 для коду Д2.

AД2= -0,0100  0110 1001;

[AД2]o =1 ,1011        1001 0110;

На основі співвідношення отримаємо додатковий код числа А:

[AД2]д =1 ,1011        1001 0111.

В коді Д1 пряме інвертування цифр тетрад означає отримання доповнення до 24 - 1 = 15. Тому для отримання зворотного коду числа в коді Д1 в увсі тетради числа додають спочатку +0110, після чого роблять інвертування цифр тетрад.

Приклад. Для числа A= 0,148 = 0,0001 0100 1000 отримати зворотний і додатковий коди Д1.

0,0001  0100  1000

0110     0110  0110

0,0111  1010  1110.

Звідси    [AД1]o = 1,10000101 0001;

[AД1]д = 1,100001010010.

 

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

Приклад. Скласти в зворотному і додатковому кодах Д1 і Д2 числа

А = - 0,926 і В =+ 0,845.

Для коду Д1

А = - 0,1001 0010 0110 і В =+ 0,1000 0100 0101.

[A]o=    1,0000        0111 0011

[B]o=    0,1000        0100 0101

1,1000  1011  1000

+ 0110

[C]o=[A]o+[B]o=      0,1001        0001 1000

[C]пр=   1,0000        1000 0001

[A]д=    1,0000        0111 0100

[B]д=    0,1000        0100 0101

1,1000  0100  0101

+ 0110

[C]д=    1,1001        0001 1001

[C]пр=   1,0000        1000 0001

Для коду Д2

A= ˗      0,1100        0101 1001

B=+      0,1011        0111 1000

[A]o=    1,0011        1010 0110

[B]o=    0,1011        0111 1000

1,1111  0001  1110

+ 1101  0011  1101

[C]o=              1,1100        0100 1011

[C]пр=             1,0011        1011 0100

 

Негативні поправки вносяться в виді доповнення: 1101

Таким чином, код Д2, тобто код з надлишком 3, дозволяє надто просто формувати порозрядні доповнення до р ˗ 1 = 9, а також просто виконувати алгебраїчне додавання. Однак, як і код Д1, він вимагає корекції результату, що збільшує час реалізації операцій. Код Д2 володіє ще рядом корисних властивостей. Наприклад, цифри десяткової системи счислення, значення яких більше або рівні п'яті, відрізняються тим, що в старшому розряді двійково-десяткового коду завжди присутня одиниця. Завдяки цій властивості по значенню тільки одного старшого розряду тетради визначається необхідність округлення. Цією  ж властивістю можна скористуватися для спрощення реалізації прискореного множення.