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

1.2. Додавання двійкових чисел у модифікованому доповняльному коді

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

Приклад 1. Додати у модифікованому доповняльному коді двійкові числа А і В при наступних умовах:

  1. А > 0; B > 0; A + B > 0.

A = + 0,1101; B = + 0,0001 +

00,1110; 00,1110;

2. А < 0; B < 0; A + B < 0.

A = - 0,1101; B = - 0,0001; +

111,0010; 11,1110;

Одиниця переносу із старшого знакового 

розряду не враховується

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

1.3. Додавання двійкових чисел у модифікованому оберненому коді

Реалізується так само, як і в доповняльному коді. Обернені коди чисел додаються порозрядно, знакові розряди додаються як розряди цілих чисел. Суму отримуємо у оберненому коді.

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

Приклад 2. Додати у модифікованому оберненому коді числа А і В при умові:

1) А > 0; B < 0; A + B > 0.

A = + 0,1101; B = - 0,0001; +

100,1011

Циклічний перенос +1

; 00,1100;

2) А < 0; B < 0; A + B < 0.

A = - 0,1101; B = - 0,0001; +

111,0000;

Циклічний перенос +1

11,1110;

1.4. Переповнення розрядної сітки при додаванні у модифікованих машинних кодах

Переповнення розрядної сітки при додаванні модифікованих кодів, так само як і при додаванні у звичайних кодах із фіксованою комою, може бути лише у випадках, коли доданки мають однакові знаки. Таке переповнення виявляється способом порівняння знакових розрядів отриманої суми, наприклад, застосовуючи операцію додавання за модулем 2 (XOR). Ознакою переповнення є неспівпадання цифр, які створюються у двох знакових розрядах суми, тобто код знаку числа має вигляд 01 або 10. Відповідно, результат неможливо віднести до додатних, ні до від’ємних модифікованих кодів. Пояснимо це на наступних прикладах.

Приклад 3:

1. А = + 0,1101; 2. А = - 0,1101;

В = + 0,0111; В = - 0,0111;

А + В > 0; А + В < 0;

+ +

Відкидається 

Як видно з прикладів, у знакових розрядах отриманої суми додатних доданків маємо комбінацію „01”, а від’ємних – „10”, що свідчить про переповнення розрядної сітки.

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