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

 

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.

 

                                 

Сума  від'ємна. Виникає перенесення в знаковий розряд і із знакового розряду. Необхідно провести корекцію результату.

Очевидно, що у всіх розглянутих випадках додавання операнди можна поміняти місцями, і при цьому результат не зміниться.

Таким чином, обернений код досить зручний для виконання операцій алгебраїчного додавання, якщо врахувати простоту переведення від'ємних чисел із прямого кода в обернений і навпаки.