Інформатика. Вибірковий модуль. Презентація до уроку на тему:"Особливості реалізації дійсночисельної комп'ютерної арифметики"
Особливості додавання чисел, представлених у формі з плаваючою комою.
Підготувала: вчитель інформатики Бойко Оксана Іллівна. Особливості реалізації дійсночисельної комп'ютерної арифметики.
Номер слайду 2
Особливості додавання чисел, представлених у формі з плаваючою комою. При виконанні операції алгебраїчного додавання над мантисами і порядками виконуються різні дії. Додавання чисел у нормальній формі здійснюється шляхом додавання мантис. Додавати мантиси можна тільки для чисел, що мають однакові порядки!!!
Номер слайду 3
У ЦОМ з плаваючою комою, порядки і мантиси фіксуються в спеціальних вузлах, називаних регістрами (зсуву).{5 C22544 A-7 EE6-4342-B048-85 BDC9 FD1 C3 A}i-1ii+1
Номер слайду 4
Для того, щоб додати або відняти два числа з різними порядками, потрібно провести:вирівнювання їхніх порядків, причому, природньо, порушується нормалізація одного з чисел. При вирівнюванні порядків доданок з меншим порядком повинен бути приведеним до порядку іншого доданка. Принципово, приведення можна здійснювати до будь-якого порядку, тобто як до меншого порядку, так і до більшого. У ЦА приводять до більшого порядку
Номер слайду 5
Мантису першого доданка треба при цьому помножити на величину (Pa-Pb), яка дорівнює 2 Pa-Pb або, що те ж саме, зсувати в регістрі праворуч на (Pa-Pb) розрядів. Молодші розряди мантиси при зсуві можуть зникати, в результаті чого в доданок вноситься похибка. Якщо порядок числа збільшується на n розрядів, то у мантисі числа потрібно зсунути кому на n розрядів ліворуч. Відповідно, якщо порядок числа зменшується на n розрядів, то у мантисі числа потрібно зсунути кому на n розрядів праворуч.
Номер слайду 6
Приклад. Додати А = 0,11011*2 4 В = 0,11001*2 2 Порядок B менше порядку A на 2 розряди (4-2=2), тому збільшимо порядок числа В до порядку числа А (на двi одиницi) та зсунемо кому у мантисі числа В на 2 розряди ліворуч. Після вирівнювання порядків число В буде: В = 0,00110*104
Номер слайду 7
Тепер додаємо мантиси: 0,11011*104 + 0,00110*104 A+B = 1,00001*24 Очевидно, що порушена нормалізація. Тому зсунемо мантису праворуч (кому мантиси ліворуч) на 1 розряд і порядок збільшимо на одиницю. Одержимо, А + В = 1,00001*2 4 = 0,100001*2 5 . Після округлення А + В = 0,10001*2 5 .
Номер слайду 8
Алгебраїчне додавання двох чисел в ЦОМ з плаваючою комою виконується утакий спосіб:1) На спеціальному суматорi порядків з порядку першого числа віднімається порядок другого числа. Знак різниці порядків вказує, яку з мантис потрібно зсувати праворуч (кому у мантисі - ліворуч) при вирівнюванні порядків, і порядок кожного з двох доданків повинен бути прийнятим за спiльний порядок після закінчення вирівнювання порядків.2) Якщо різниця порядків додатня, то виконується ряд циклів зсуву мантиси другого доданка на один розряд праворуч з одночасним відніманням одиниці з різниці порядків доти, доки на суматорi порядків не буде зафіксований нуль. Далі нормалізована мантиса першого доданка додається з ненормалізованою мантисою другого доданка, і сумі приписується порядок першого доданку.
Номер слайду 9
3) Якщо різниця порядків вiд’ємна, то в кожному циклі виконується зсув мантиси першого доданка на один розряд праворуч і до вiд’ємної різниці порядків додається одиниця. Після того, як на суматорi порядків буде зафіксований нуль, виконується додавання мантис, і сумі приписується порядок другого доданка.4) У результаті додавання двох чисел може відбутися порушення нормалізації як ліворуч, так і праворуч.
Номер слайду 10
Додавання двох чисел у ЦОМ з плаваючою комою: А=0,10110101*2-1110 В=0,11110011*20001 Модифікований код першого доданку має вигляд: знак порядку 11 порядок 1110 знак мантиси 00 мантиса 10110101 Модифікований код другого доданку має вигляд: знак порядку 00 порядок 0001 знак мантиси 00мантиса 11110011
Номер слайду 11
1) З порядку першого доданку віднімаємо порядок другого, тобто додаємо його додатковий код: 11 1110 – порядок 1-го доданка + 11 1111 – порядок 2-го доданка зі зміненим знаком 11 1101 – різниця порядків Вiд’ємний знак різниці порядків говорить про те, що порядок першого доданка менше, ніж порядок другого, тобто після вирівнювання порядків обидва доданки повинні мати однаковий порядок, який дорівнював би порядкові другого доданка.
Номер слайду 12
2) Повторюємо цикл додавання одиниці до різниці порядків і зсуву мантиси першого доданку праворуч доти, доки різниця порядків не прийме значення "нуль". Різниця порядків і мантиса першого доданка послідовно приймають наступні значення: N циклу різниця порядків мантиса 1-го доданка 1 11 1110 01011010 1 +1 2 11 1111 00101101 0 +1 3 00 0000 00010110 1 Після 3-го циклу вирівнювання порядків закінчується. Два молодших розряди мантиси першого доданка зникають, один розряд зберігається для округлення.
Номер слайду 13
3) Додаємо мантиси обох доданків з вирівняними порядками: знак 00 00010110 1 – мантиса 1-го доданку + 00 11110011 – мантиса 2-го доданку 01 00001001 1
Номер слайду 14
4) Приписуємо сумі порядок другого доданка та одержуємо код: знак порядок 2-го дод. знак матиса суми 00 0001 01 000010011 Комбінація “01” у двознакових розрядах мантиси суми вказує на порушення нормалізації ліворуч. Для відновлення нормалізації додаємо одиницю до порядку суми, а код мантиси суми зсуваємо на один розряд праворуч. В результаті одержуємо код суми: 00 0010 00 10000100 1
Номер слайду 15
5) Виконуємо округлення шляхом додавання одиниці в додатковий розряд. Остаточний код суми має такий вигляд: 00 0010 00 10000101. При вирівнюванні порядків доданків у ЦОМ з плаваючою комою ми вимушено використовували операцію зсуву праворуч. Поряд з цим використовується операція зсуву ліворуч. Зсув додатнього числа лiворуч на k розрядів еквівалентний множенню його на 2 k . Ця операція має сенс тільки доти, доки старші значущі розряди не почнуть виходити за розміри регістру, тобто поки в розряд знаку не потрапить одиниця.
Номер слайду 16
Приклад А10 = 6,25, В10 = 20,51. Записуємо числа в двійковому коді: А2 = 110,01 = 0.11001·2+3 В2 = 10100,1 = 0.101001·2+52. Записуємо числа у форматі з плаваючою комою:[А]пк = 0 011 0 11001[В]пк= 0 101 0 101001
Номер слайду 17
3. Порівнюємо порядки: РВ – РА = 5 – 3 = 2.4. Різниця порядків не дорівнює нулю, тому виконуємо вирівнювання порядку числа A і відповідну корекцію мантиси числа A (порядок числа А менше порядку числа В на 2, тому робимо зсув мантиси числа А на два розряди вправо і збільшуємо порядок числа А на 2):[А]пк = 0 101 0 0011001[В]пк= 0 101 0 101001
Номер слайду 18
5. Вирівнюємо кількість двійкових розрядів у мантисах чисел А і В (розрядна сітка мантиси числа В на одиницю менша, тому в мантису числа Bдописуємо один нуль справа):[А]пк = 0 101 0 0011001[В]пк= 0 101 0 10100106. Виконуємо операцію додавання мантис у додатковому модифікованому коді (знаки мантис відображаємо двома двійковими розрядами):[МА]дк = 00 0011001+[МВ]дк = 00 1010010[МС]дк = 00 1101011 Мантиса результату додавання не потребує нормалізації, тому що розряди знака мають однакові значення і значення старшого розряду мантиси не дорівнює значенню молодшого розряду знака.
Номер слайду 19
7. Записуємо результат у форматі з плаваючою комою: 0 101 0 1101011.8. Переводимо результат у двійковий і десятковий коди: С2 = 11010,11 С10 = 16+8+2+0,5+0,25 = 26,75. Слід мати на увазі, що часто через невелику кількість двійкових розрядів, виділених для зберігання мантиси, виникає похибка відтворення дробової частини вихідного числа в двійковій системі числення. Значення абсолютної похибки D відтворення числа X обчислюється за формулою: D = Xвихідне – Xотримане ,де Xвихідне – вихідне число; Xотримане – отримане число. Значення відносної похибки d відтворення числа X обчислюється за формулою:d = (D / Xвихідне)·100 % .