Попередня сторінка Зміст Наступна сторінка Електронні посібники ВНТУ
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.


                                 

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

