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