6.4.2 Зображення вiд’ ємних чисел
6 Зображення чисел у комп’ ютерi
6.4.2 Зображення вiд’ ємних чисел
Для спрощення виконання арифметичних операцiй застосовують спецiальнi коди для зображення чисел. Операцiя вiднiмання( алгебраïчного додавання) зводиться до арифметичного додавання кодiв. Для зображення цiлих чисел зi знаком у комп’ ютерi застосовують прямий, зворотний i додатковий коди. Загальна iдея побудови кодiв така. Код трактується як число без знака, а дiапазон чисел, що зображуються кодами без знака, розбивається на два пiддiапазони. Перший з них зображує додатнi числа, а другий – вiд’ ємнi. Коди формуються так, щоб значення старшого розряду вказувало на знак числа, що зображується.
Прямий код. Прямий код двiйкового числа A, що зображується в n-розряднiй сiтцi, визначається як A, якщо A ≥ 0; a +| A |, якщо A < 0, де a – величина, що дорiвнює вазi старшого розряду сiтки: для дробiв a = 1, а для цiлих a = 2 n−1. Дiапазон чисел, що зображуються прямим кодом, становить 0 ≤ | A | ≤ a.
Ознакою зображення додатних чисел є наявнiсть нуля в старшому розрядi. Наявнiсть у ньому 1 говорить про те, що число вiд’ ємне. Таким чином, прямий код двiйкового числа збiгається за зображенням iз записом самого числа, але в розрядi знака стоïть 0 чи 1 вiдповiдно для додатних чи вiд’ ємних чисел. Наприклад, для чотирирозрядноï сiтки маємо 0101( 5) 1101(– 5) Додавання у прямому кодi чисел, що мають однаковi знаки, здiйснюється досить просто. Числа додаються, i сумi присвоюється знак доданкiв. Однак для операцiï додавання чисел з рiзними знаками прямий код незручний. У цьому випадку доводиться визначати бiльше за модулем число, здiйснювати вiднiмання, а потiм рiзницi присвоювати знак бiльшого за модулем числа. Операцiя вiднiмання зводиться до операцiï арифметичного додавання за допомогою оберненого й додаткового кодiв.
Обернений код. Обернений код двiйкового числа A, що зображується в n-розряднiй сiтцi, визначається як I = A, якщо A ≥ 0; I = b − | A |, якщо A < 0, де b – величина найбiльшого числа без знака, що розмiщується в n-розряднiй сiтцi: для дробових чисел b = 2 − 2 −( n−1), а для цiлих b = 2 n − 1. Дiапазон чисел, що зображуються зворотним кодом, такий самий, як i для чисел прямого коду: 0 ≤ | I | ≤ a. За означенням, зворотний код вiд’ ємного числа є доповненням модуля
90