Попередня сторінка Зміст Наступна сторінка Електронні посібники ВНТУ
5.4 Виконання операцій алгебраїчного додавання в доповняльному коді
Як і в оберненому коді, при використанні доповняль-ного коду операція віднімання замінюється операцією алгебраїчного додавання. При цьому знаковий розряд і цифрова частина числа розглядаються, як єдине ціле, тобто з від'ємними числами цифровий пристрій оперує, як з неправильними дробами. Правильний знак суми формується автоматично в процесі додавання вмісту знакових розрядів операндів і одиниці перенесення з цифрової частини, якщо вона має місце.
Використаємо визначення доповнення до двох і доповнення до одиниці для форулювання загальних правил додавання двійкових операндів, представлених у формі з фіксованою комою (правильні дроби), в доповняльному коді. Розгляд будемо вести для двох основних варіантів:
а)
Обчислимо цей вираз із застосуванням доповнень.
Як відомо, для правильних двійкових дробів
Тоді
де
Розглянемо два такі випадки:
1) Якщо , то >
Це означає, що виникає перенесення до знакового розряду, і також, із знакового розряду. З метою отримання правильного результату необхідно не враховувати (відкинути) перенесення із знакового розряду. Тоді
2) Якщо < 0, то
Це означає, що не виникає перенесення до знакового розряду, а, також, із знакового розряду.
Результат операції є від'ємний і записується в доповняльному коді так:
б)
Обчислимо в доповняльному коді:
Вираз
Це означає, що виникає перенесення до знакового розряду, і також, із знакового розряду.
Результат операції є від'ємний і записується в доповняльному коді так:
Отримані результати дають право зформулювати таке правило додавання двох чисел в доповняльному коді:
Наступні приклади ілюструють чотири основні варіанти додавання чисел у доповняльному коді при виконанні умови > і < 1.
1) > 0; > 0; > 0;
Приклад 1.
.
У звязку з тим, що доповняльний код додатніх чисел співпадє з записом самих чисел, оприманий результат співпадає з результатом додавання цих чисел у прямому коді.
2) > 0; < 0; > 0;
Приклад 2.
відкинути
Виникає перенесення в знаковий розряд і із знакового розряду. Одиницю перенесення із знакового розряду необхіднр відкинути.
3) < 0; > 0; < 0;
Приклад 3.
Сума від'ємна. Перенесення до знакового розряду немає. Перенесення із знакового розрядк теж немає. Результат правильний.
4) < 0; < 0; < 0;
Приклад 4.
відкинути
Сума від'ємна. Одиницю перенесення із знакового розряду необхідно відкинути.
Таким чином, у всіх випадках знак суми формується автоматично в результаті застосування загальних правил порозрядного додавання знаковиз і цифрових розрядів операндів Очевидно, що у всіх розглянутих випадках додавання операнди можна поміняти місцями, і при цьому результат не зміниться.