Додатковий код додатного двійкового числа збігається з його прямим і оберненим кодами. Дододатковий код від'ємного двійкового числа утворюється з його оберненого коду додаванням до молодшого розряду одиниці. Таким чином, операція перетворення прямого коду в додатковий не є порозрядною і виконується значно складніше, ніж отримання оберненого коду.
Відповідність між прямим і додатковим кодами на прикладі чотирьох цифрових розрядів (беззнакових) наведена в табл. 1.
Таблиця 1.
Прямий код
Додатковий код
Прямий код
Додатковий код
Х4
Х3
Х2
Х1
Y4
Y3
Y2
Y1
Х4
Х3
Х2
Х1
Y4
Y3
Y2
Y1
Знаковий розряд прямого коду використовується як керуючий сигнал: якщо ХЗН = 0, то вихідний код повторює значення вхідного; при ХЗН = 1 реалізується перетворення згідно з табл. 2.
Карта Карно відповідно до табл. 1 для отримання мінімальних форм функцій перетворення прямого коду в доповняльний показана на рис. 1.
а б в г
Рис. 1. Карта Карно для функцій перетворювача прямого коду в доповняльний: а – Y1; б – Y2; в – Y3; г – Y4
На основі карт Карно з врахуванням знакового розряду ХЗН прямого коду для функцій Y1 ,Y2 ,Y3 ,Y4 , що представляють виходи перетворювача, отримуємо:
(1)
У загальному вигляді для Yi справедливе рівняння:
(2)
Схема перетворювача прямого коду в додатковий на основі виразів (1) і (2) показана на рис. 2,а. Даний перетворювач характеризується високою швидкодією. Час встановлення вихідного коду визначається трьома затримками поширення сигналу, однак в міру зростання номера розряду лінійно зростає й необхідне число входів використовуваних елементів АБО.
Другий варіант схеми перетворювача (рис. 2,б) використовує тільки двовходові елементи АБО, при цьому диз'юнктивна сума змінних утворюється послідовним способом. У такій реалізації схема перетворювача спрощується, однак час встановлення вихідного коду істотно збільшується.
Рис. 2. Схеми перетворювачів прямого коду в додатковий.
Практичне правило отримання додаткового коду полягає в тому, що праворуч від першої одиниці (враховуючи і саму одиницю) в прямому коді числа значення розрядів - незмінні, а зліва від одиниці (крім знакового) - інвертуються. Наприклад, для прямого коду 10100100 додатковим буде код 11011100.
Для перетворення в додатковий код багаторозрядних двійкових чисел часто використовують переведення числа в обернений код і подальшого додавання одиниці до його молодшого розряду за допомогою суматора.
Завдання для самоконтролю
Задача 1. Виконати аналіз роботи схеми на рис.3 (стр.55), якщо х1=1, х2=0, х3=1, х4=0. Для цього потрібно вказатирівні сигналів на входах і виходах пристрою та на логічних елементах рис.3. Отримані результати порівняти з даними таблиці 1 (стр. 54).
Задача 2***. Побудувати схему асинхронного перетворювача двійкового коду 8421 в код 2421 використовуючи мультиплексори а) 8→1, б) 16→1, використовувати інтегральну мікросхему мультиплексора КР1533КП7.
Для розв’язування задачі використовувати таблицю 1, для побудови діаграм Вейча за допомогою яких можна визначити інформаційні області Dі для кожного мультиплексора (а, б).