Представлення дійсних чисел у двійковому нормалізованому виді.
Як відомо (див. самостійну роботу №1), для перетворення чисел із десяткової до двійкової системи числення використовуються два алгоритми: - для цілої частини – послідовне ділення на основу нової системи числення (2, 8, 16) і запис отриманих залишків у зворотному порядку; - для дрібної частини - послідовне множення на основу нової системи числення (2, 8, 16) і запис отриманих залишків у прямому порядку порядку; Зворотне перетворення базується на визначенні позиційної системи числення Одержавши двійкове число, потрібно його нормалізувати, тобто двійкове число повинне завжди починатися з одиниці й мати такий вигляд: ± 1. m2* 2p, (1) де m2 - двійкова мантиса числа, p - порядок двійкового числа. У зв’язку з тим, що при перетворенні дрібної частини дійсних чисел лише в окремих випадках вдається закінчити множення на основу нової (у нашому випадку - двійкової) системи числення, неминуче виникає похибка перетворення, яку можна оцінити зробивше зворотне перетворення. Err = | N1-N2 | (2) ПРИКЛАД; N1=2.107. При прямому перетворенні у двійкову систему числення дрібної частини отримаємо 0.107d ->0.00011011011b у нормалізованому виді 0.00011011011b =1.1011011*2-4 При зворотному перетворенні 0.00011011011b -> 0,10107421875 Похибка перетворення Err=|0.107-0,10107421875 |=0,00592578125 Як бачимо, похибка перетворення значна, тому при виконанні лабораторної роботи слід отримати 15-20 двійкових розрядів для дрібної частини числа. Машинні формати дійсних чисел Як ми вже з'ясували, дійсні базові величини можуть бути типу float (single), double або long double (extended). Всі вони мають для зберігання комірки різної довжини. Звідси й різний діапазон представлення для різних типів дійсних чисел, хоча ідея зберігання майже та сама.
Формат 32 біти - float (або single) Число це зберігається в комірці довжиною 32 біта, які розподіляються в такий спосіб:
На характеристику виділяються 8 бітів (розряди 23-30). Максимально можливе шістнадцятирічне число, яке можна розмістити в цих бітах, дорівнює FFh, а його половина по визначенню - це зсув = 7Fh. Оскільки для мантиси залишається всього 23 біта (розряди 0-22), а ми знаємо, що мантиса завжди нормалізована, виникає цілком резонне питання: навіщо зберігати найпершу одиницю мантиси? Нехай комп'ютер сам її відновлює. Таким чином, ця найперша одиниця в інформаційні розряди мантиси не входить (схований розряд), а на мантису в результаті приділяється не 23 біти, а 24. Таке представлення дозволяє вірно відображати 7-8 десяткових цифр. Формат 64 біти - double
Тут ідея та ж сама, що й у попередньому форматі представлення дійсних даних. На все число приділяється комірку довжиною 64 біта. На характеристику витрачаються 11 бітів (розряди 52-62). Максимально можливе число, яке можна розмістити в 11-ти бітах: 111 1111 111lb. Звідси потрібно, щоб зсув дорівнював 011 1111 1111b - 3FFh. Мантиса теж має прихований розряд.
Читайте также: Аксіоматичне означення додавання цілих невід’ємних чисел в аксіоматичній теорії. Таблиці і закони додавання. Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|