Щербаков а. Н., Проскурін м. П., Грушко с. С. Прикладна теорія цифрових автоматів
![]()
|
9.2 Модифіковане складання чисел у форматі з рухомою крапкою (комою)Числа, представлені у форматі з рухомою крапкою (комою) – ФРК, мають дві часті: мантису і порядок. Тому, операція додавання (складання) виконується окремо над мантисою і над порядком. Отже, в ЦА може бути два суматори: для мантиси і для порядку. Для чисел з рухомою крапкою справедлива умова нормалізації: q-1≤|mA| < 1, (9.1) де q основа системи числення; mA мантиси числа. Це нормалізоване представлення числа, яке вимагає, щоб в старшому розряді мантиси 2-го числа була одиниця. Для двійкової системи це означатиме, що мантиса завжди знаходиться в межах: 0,5≤|mA|<1, (9.2) При виконанні автоматом операцій над числами, нормалізують як вхідні доданки А і В, так і вихідний результат С. Операція нормалізації числа складається з умови нормалізації (9.1) і здійснюється методом зрушення мантиси числа в ту або іншу сторону. Зрушення можуть проводитися вліво або управо в межах розрядної сітки ЦА за правилами представлених моделлю таблиці 9.1. Таблиця 9.1 Зсув звичайних кодів числа (один розряд знаку)
Величина залежить від коду. Для доповняльного коду ε=0, для оберненого коду =1. При складанні чисел результат може вийти з нормалізації як зліва, так і справа (див. табл. 9.1, 9.2). Ознакою порушення нормалізації числа справа γ=1 (коли результат має переповнення)є наявність різнойменних комбінацій в знакових розрядах сумматора: γ ![]() Sg1 Sg2= 1, іγ=0 у решті випадків. Таблиця 9.2 Зсув модифікованих кодів числа (два розряди знаку)
(де γ ознака порушення нормалізації числа справа, вказує на необхідність зсуву числа вправо на один розряд для відновлення знаку числа). Ознакою порушення нормалізації числа зліва δ=1 (коли результат по абсолютній величині виявляється менше 1/q) є наявність однакових комбінацій в розряді переповнення і старшому розряді (R1) цифрової частини суматора: δ ![]() Sg2 R1 = 1, і δ=0 у решті випадків, (де δ – ознака порушення нормалізації, що вказує на необхідність зсуву числа вліво на один розряд). Зазвичай Sg1 (або Sg0) старший, а Sg2 (або Sg1) молодший знакові розряди. Таким чином, операція нормалізації отриманого числа (суми двох операндів) складатиметься з сукупності перевірки наявності ознак порушення γі δ та зсувів (вправо, вліво) числа. Отже, розглянемо складання чисел А=mApA и В=mBpB, що мають однаковий порядок pA=pB. Обидві мантиси задовольняють умові нормалізації. Складання мантиси здійснюють на суматорі ДСДК або ДСОК за правилом складання чисел представлених у формі з фіксованою комою. Якщо після складання мантиса результату задовольняє умові нормалізації (тобто δ=0, γ=0), то до цього результату приписується порядок будь-якого з операндів. Інакше відбувається нормалізація числа. Приклад 1. Знайти суму чисел: А=0,10002-3 та В=0,10112-3. Мантиси і порядок обробляються на ДСДК у ФРК. [mА]д=00/,1000 [РА]д=11/101 +[mB]д=11/,0101 [Рв]д=11/101 [mс]д=11/,1101 Тут Sg2&R1=1, тобто δ=1, γ=0. Це означає, що необхідний зсув мантиси [mс]д вліво на 1 розряд. [m’c]=11/,1010 Перевіряємо. Знову δ=1, γ=0 необхідний ще зсув вліво на 1 розряд. [m’’c]д= 11/,0100. Перевіряємо, все гаразд δ=0, γ=0. Одночасно зі зрушенням потрібна корекція порядку на мінус 2(10)=11/010(2). (що рівнозначно збільшенню порядку на дві одиниці – у доповняльному коді 11/110). +[Рс]д=11/101 [ΔPc]д=11/110 [ΔРс]пр=11/010 [Р’’с]д=11/011 РС пр=11/101 (тобто Р= 2-5) тоді результат (число) дорівнює: [m’’c]д= 11/,0100 [m’’c]об=11/,1011 + 1 11/,1100. Відповідь: mC пр=11/,1100. З урахуванням порядку запис для 16-ти розрядної ЕОМ Спр= 11/,11000000/11/0101/. Приклад 2. Знайти суму чисел А=0,110024 та В=0,100024. Мантиси і порядок обробляються на ДСОК у ФРК (шість розрядів мантиси і чотири для порядку). Порядки [PA]=[PB]=[PC]об= 0,100 (оскільки позитивні і рівні обидва порядки операндів А і В). +[mА]об=11/,0011 [mB]об=11/,0111 [mC]об=110/,1010 + → → 1 10/,1011 (δ=0, γ=1) Порушення нормалізації справа (тобто γ=1 означає, що було переповнення). Число зсуваємо вправо на один розряд, відновлюючи знак 11 і одночасно збільшуючи порядок Р на 1. Тобто [mC]об=11/,0101, тепер δ=0, γ=0. Одночасно коректуємо і порядок: +[Рс]= 00/100 [ΔPс]=00/001 00/101 (+5), тоді відповідь: 0,10102+5 (Самостійно зробіть запис Спр для 16-ти розрядної ЕОМ). |