Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metod_lab_OFK.doc
Скачиваний:
9
Добавлен:
04.11.2018
Размер:
757.25 Кб
Скачать

1.3.3. Доповняльний код

Для подання від’ємних чисел у двійковій системі числення частіше використовується система доповнення до двох. У ній також є знаковий розряд (0 це “ + ”, а 1 – це “-”). Доповнення виконується у два етапи. Спочатку кожна 1 міняється на 0, а кожний 0 – на 1 (інверсія). Потім до молодшого розряду отриманого результату додається 1. Наприклад, розглянемо перетворення вісьмирозрядного числа - 610 у форму з доповненням до двох:

000001102 = (+ 6)10

111110012 = (- 6 у системі з доповненням до 1)

111110102 = (- 6 у системі з доповненням до 2).

Формула утворення доповняльного коду двійкового числа має вигляд

Адоп = (1.3.3)

Приклад 1.3.3. А= - 0,101010; Адоп = 10 + (- 0,101010) = 1,010110.

Як видно з виразу (1.3.3), доповняльний код додатного числа повістю співпадає з зображенням числа у прямому коді.

Порівнюючи від’ємне число А з його доповняльним кодом Адоп, можна вивести наступне правило: щоб записати від’ємне число у доповняльному коді, потрібно у знаковому розряді цього числа поставити одиницю, а у всіх числових розрядах нулі замінити одиницями, а одиниці – нулями і до отриманого результату добавити одиницю до молодшого розряду.

Приклад 1.3.4. Записати двійкове число А = - 0,0101 у доповняльному коді.

А = - 0,010 = Адоп = 1,1010 + 0,0001 = 1,1011.

Щоб перетворити доповняльний код від’ємного числа у прямий код, потрібно виконати друге доповнення, тобто у числових розрядах цього числа замінити нулі на одиниці, а одиниці на нулі (створити обернений код) і додати до отриманого результату одиницю молодшого розряду.

Приклад 1.3.5. Перетворити доповняльний код Адоп=1,1011 від’ємного числа у

прямий код.

Апр= 1,0100 + 0,0001= 1,0101.

У доповняльному коді від’ємний нуль відсутній. Тому доповняльний код використовується частіше, ніж обернений. Але у цій формі є інша особливість. Набір бітів, що складається з 1, за яким йдуть усі нулі (наприклад, 10, 100, 1000, . . .) є доповненням до самого себе.

1.3.4. Модифіковані коди

Ці коди відрізняються від простих машинних кодів тим, що на відображення знака відводиться два розряди: плюс відображається двома нулями (00), а мінус - двома одиницями (11). З погляду побудови АЛП вони зручні для виявлення переповнення розрядної сітки, яке може виникнути при додаванні чисел. Значення 01 та 10 у знакових розрядах свідчать про переповнення розрядної сітки. Невизначеність знаку приводить до того, що результат у цьому випадку буде не коректний, тобто, втрачається.

У модифікованих кодах другий розряд ліворуч від коми визначає знак числа, а перший розряд служить для аналізу переповнення розрядної сітки при виконанні арифметичних операцій над числами.

Перетворення двійкових чисел у модифіковані прямий, доповняльний і обернений коди проводиться за правилами, розглянутими вище.

Приклад 1.3.6. Подати двійкові числа А1= +0,1101101 і А2= - 0,1101101 у прямому,

доповняльному і оберненому модифікованих кодах.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]