Алгоритм додавання/віднімання чисел з плаваючою комою будемо розглядати для k = 2, тоді операнди X та У можна записати так X = 2А х, У = 2Ву, де А, В порядок операндів; X, У, які представлені “m” розрядами; Мантиси х та у є n - розрядні правильні нормалізовані дроби, тобто 1/2≤|х|<1, 1/2≤|у|<1. Операція додавання (віднімання) з ПК здійснюється в декілька етапів:
— вирівнюються порядки доданків; молодший порядок збільшується до більшого, при цьому відбувається корекція мантиси числа, яке перетворюється;
— виконується перетворення мантис в додаткові коди;
— виконується додавання мантис за правилами, які розглядались для чисел з ФК;
— до отриманої суми дописується порядок доданків і якщо буде потрібно виконується нормалізація результату. Можливі два випадки денормалізації:
а) денормалізація вліво відповідає переповненню розрядної сітки;
б) денормалізація вправо, яка виникає, коли у прямому коді мантиси після
коми є один або декілька нульових розрядів.
Приклад 1. Потрібно додати два числа X = + 0,10101 ∙ 2101; У = - 0,11001 ∙ 2011
- Вирівнюємо порядок числа У до порядку числа Х
РХдоп.м = 00,101 + РУдоп.м = 11,101 00, 010 | Рх > Ру на 2, тому виконуємо зсув вправо на 2 розряди мантиси числа У. У = - 0,0011001 ∙ 10+101 |
- Додаємо мантиси чисел X та У в модифікованому додатковому коді:
Хдм = 00,1010100
+
Улм = 11,1100111
00,0111011 це прямий код додатної мантиси.
Результат отримали в ненормалізованій формі, оскільки після коми розряд мантиси має нульове значення. Для нормалізації цього числа необхідно зсунути всі розряди мантиси вліво на один розряд та зменшити на одиницю значення порядку. Отже результат: 00,1110110 • 2100
Цей результат буде розміщено в розрядній сітці обчислювального пристрою.
Приклад 2: Додати двійкові числа: А = + 0,10100*2101 та В = - 0,10110*2100.
- Вирівнюємо порядок числа В до порядку числа А
РАдоп.м = 00,101 + РВдоп.м = 11,100 00, 001 | РА > РВ на 1, тому виконуємо зсув мантиси числа В вправо на 1 розряд. В = - 0,010110 ∙ 2101 |
- Додаємо мантиси чисел X та У в модифікованому додатковому коді:
Хдм = 00,10100
+
Улм = 11,10101
00,01001 це прямий код додатної мантиси.
Результат отримали в ненормалізованій формі, оскільки після коми розряд мантиси має нульове значення. Для нормалізації цього числа необхідно зсунути всі розряди мантиси вліво на один розряд та зменшити на одиницю значення порядку. Отже результат: 00,1001*2100
Завдання для самоконтролю
- Додати A = - 0,1101*2101 i B = + 0,1100*2011
2. Додати два числа у форматі з плаваючою комою:
a) V=6810 та W=29,12510 б)Х= -93,510 та У=76,2510
Тема для самостійного опрацювання (Лекція №3с):
Множення, ділення чисел з ПК
Зробити стислий конспект.
Дата добавления: 2016-03-25; Мы поможем в написании ваших работ!; просмотров: 1034 | Нарушение авторских прав Поиск на сайте: Лучшие изречения: Велико ли, мало ли дело, его надо делать. © Неизвестно |
Ген: 0.013 с.