ДОДАВАННЯ ЧИСЕЛ З ПЛАВАЮЧОЮ ТОЧКОЮ

Необхідною умовою виконання цієї операції є відповідність розрядів мантиси складаються чисел, що досягається вирівнюванням їх порядків шляхом зсуву мантиси меншого числа вправо на кількість розрядів, рівну А Р = Р Л - Р1 Після кожного зсуву порядок збільшується на одиницю. Після вирівнювання порядків проводиться алгебраїчне складання мантисс за правилами для чисел з фіксованою точкою. Порядок результату приймається рівним порядку більшого доданка. В процесі підсумовування чисел з різними знаками може порушитися нормалізація результуючої

Отримання зворотного коду числа -548 і додаткового коду числа -278

Мал. 2.9. Отримання зворотного коду числа -548 і додаткового коду числа -278

Приклади алгебраїчного додавання десяткових чисел в зворотному і додатковому кодах

Мал. 2.10. Приклади алгебраїчного додавання десяткових чисел в зворотному і додатковому кодах

Перетворення результату з зворотного коду в прямій

Мал. 2.11. Перетворення результату з зворотного коду в прямій

мантиси. В цьому випадку отриманий результат нормалізується шляхом зсуву мантиси результату вліво. Після кожного зсуву вліво порядок результату зменшується на одиницю.

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

Приклад 2.20. Додавання нормалізованих чисел А = 0,1010111 х х 2 1 і В = 0,1101101 х 22.

Число В> А, різниця порядків доданків Р д - Р л = 3, тому мантиса числа А зсувається на три розряди вправо (0,0001010 - втрачені три молодших розряду), приймається Р л = 2, після чого виконується складання

Приклад 2.21. Алгебраїчне додавання (віднімання) нормалізованих чисел з різними знаками А = +0,1010101 х 21 і / 1 = -0,1110101 х 2 °.

Різниця порядків Р А Р В = 1, тому модуль мантиси числа В зсувається на один розряд вправо (0,0111010 - молодший розряд втрачається), порядок Рд приймається рівним одиниці, мантиса числа В представляється додатковим кодом (1,1000101+ 0,0000001 = 1,1000110), після чого виконується складання мантисс

У знаковому розряді 0, тому результат позитивний і алгебраїчна сума С = +0,0011011 х 21. Виконавши нормалізацію суми шляхом зсуву на два розряду вліво, отримаємо С = + 0,1101100x2- '.

Приклад 2.22. Алгебраїчне додавання (віднімання) нормалізованих чисел з прикладу 2.21 зі зміненими знаками па зворотні: Л = -0,1010101 х 2 'НВ = +0,1110101 х 2 °.

Різниця порядків Р л - Р в = 1, тому модуль мантиси числа В також зсувається на один розряд вправо (0,0111010 - молодший розряд втрачається), порядок Р в приймається рівним одиниці. Тут мантиса негативного числа Л представляється додатковим кодом (1,0101010 + 0,0000001 = 1,0101011), після чого виконується складання мантисс

У знаковому розряді 1, тому результат негативний. Використовуючи операцію додаткового коду, визначаємо модуль мантиси: 0011010+ 1 = 0011011. Отримуємо алгебраїчну суму (з урахуванням знака) З = -0,0011011 х 2 '. Виконавши нормалізацію суми шляхом зсуву вліво на два розряду, отримаємо остаточно С = -0,1101100x2- '.

 
< Попер   ЗМІСТ   Наст >