Подання чисел з плаваючою (блукаючою) комою
Представлення числа з плаваючою комою в загальному вигляді має вид:
X=SP*q ; |q|<1
Х=2Р*q ; |q|<1
| q – мантиса числа Х;
p – порядок;
s – основа характеристики (системи числення)
Ü Для двійкових чисел вираз буде записаний так
| Розглянемо приклад: Нехай слово має 32 2х-розрядів, а число “Х” зображується у машині 2м словом а0в0в1…в6а1а2…а24 та має такий формат
|
|
|
|
|
| | | | | | | |
| а0
| в0
| в1…
| в6
| а1
| а2
| …
| …
| …
| …
| …
| …
| …
| а24
| Знак
| Знак
порядку
| Порядок
| Мантиса
| в0…в6 – використовуються для представлення порядку, при цьому розряд в0 зображує знак порядку, розряди в1…в6 – модуль порядку.
Розряди а0…а24 – зображують мантису, де а0 – знак мантиси.
Двійкове число Х=2Р*q називають нормалізованим, якщо у старшому розряді мантиси записана “1”.
Порядок (в0…в6) має 7 розрядів, то порядок може бути від -63 до 63
|
|
|
|
|
|
|
| Тому у розрядній сітці може бути представлено число від -263 до -264 і від 263 до 2-64.
|
|
|
|
|
|
|
| =63
| Це значно перевищує діапазон чисел з фіксованою комою для 32-розрядних слів.
Приклад 1. Представити у формі з блукаючою комою числа 15810 та 1011112
15810=103*0.15810=104*0.015810=105*0.0015810
1011112=2110*0.1011112=2111*0.01011112=21000*0.001011112
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Знак
| Знак
порядку
| Порядок
| Мантиса
| Нормалізована форма ↑
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Знак
| Знак
порядку
| Порядок
| Мантиса
| Ненормалізована форма ↑
Завдання для самоконтролю
1. Представити у нормалізованій формі з блукаючою комою (24-розрядна сітка) числа:
А) Х=(@+12)10 = ____________________________________________________________
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Знак
| Знак
порядку
| Порядок
| Мантиса
|
|
Б) У= -(@+25) 10 = ____________________________________________________________
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Знак
| Знак
порядку
| Порядок
| Мантиса
| 2. Нормалізувати двійкове число 10101,0112 * 210
Представлення чисел з блукаючою комою використовується в ККС, які обслуговують рішення задач науково-технічного характеру.
Нормальна форма представлення числа має великий діапазон відображення чисел та є основною в сучасних ЕОМ
Виконання операцій додавання та віднімання чисел з плаваючою комою
Алгоритм додавання/віднімання чисел з плаваючою комою будемо розглядати для 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с):
Множення, ділення чисел з ПК
Зробити стислий конспект.
©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.
|