Внутрішнє представлення дійсних чисел.
Дійсні базові величини можуть бути типу float, double або long double Від платформи вони не залежать оскільки їх обробляє співпроцесор.
Визначення.
Десяткове число - l,23154x105 має від’ємний знак, його мантиса дорівнює 1,23154, а показник ступені дорівнює 5.
Внутрішнє (машинне) представлення дійсних чисел :
Знак числа |
Характеристика |
Нормалізована мантиса |
Наприклад, для 32-розрядного числа
Знак числа |
Характеристика |
Нормалізована мантиса |
1 біт |
8 біт |
23 біта |
Знак числа: 0 - плюс, 1- мінус.
Характеристика.
Характеристика = Зміщення ± Показник ступені (Порядок)
При представленні числа в комп'ютері до реального показника ступені додається|добавляє| число 127, тобто число, що дорівнює половині максимально можливого, яке може поміститися в полі „Показник ступені ”.
Приклади:
Десяткове значення (Е) |
Скоректоване значення (Е+127) |
+5 |
132 |
0 |
127 |
-10 |
117 |
+128 |
255 |
-127 |
0 |
-1 |
126 |
Характеристика |
0 |
|
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
|
255 |
Показник ступені |
-127 |
... |
-4 |
-3 |
-2 |
-1 |
0 |
1 |
2 |
3 |
... |
128 |
Таким чином економляться місце і час, оскільки не треба виділяти розряд для знаку порядку і робити додатковий код для від’ємних порядків.
Мантиса.
Приклади представлення чисел з плаваючою точкою.
-
Двійкове число
Десятковий дроб
Десяткове число
0,1
1/2
0,5
0,01
1/4
0,25
0,001
1/8
0,125
0,0001
1/16
0,0625
0,00001
1/32
0,03125
Точність представлення мантиси.
Через обмежену кількість розрядів, які використовуються для зберігання значення мантиси, неможливе точно представити значення дійсного числа у вигляді двійкового числа з|із| плаваючою комою. Комп'ютер буде оперувати тільки|лише| його наближеним значенням.
Для того, щоб з|із| максимальною точністю зберегти в пам'яті двійкове число з|із| плаваючою комою, його мантиса має бути нормалізована.
Процес нормалізації двійкового числа нічим не відрізняється від нормалізації десяткового дійсного числа. Наприклад, десяткове число 1234,567 в нормалізованому внде виглядає так:
l, 234567 x 103
тобто десяткова кома переноситься вліво або вправо так, щоб перед нею знаходилася|перебувала| тільки|лише| одна десяткова цифра. При цьому значення показника ступені визначає кількість цифр, на які треба перемістити десяткову кому вліво (при додатному значенні ) або вправо (при його від’ємному значенні).
Нормалізація двійкового числа виконується по аналогії з десятковим.
Таким чином, двійкове число повинне завжди починатися з одиниці і мати наступний вигляд:
± 1.m2*2р
де m2 - двійкова мантиса числа, р - порядок двійкового числа.
Прилади. Представити числа в нормалізованому виді.
± 1d ± 1b ± 1b*20
± 0.5d ± 0.1b ± 1.0b*2-1
± 0.703125d ± 0.101101b ± 1.01101b*2-1
± 0.05d ± 0.000011(0011) b ± 1.1(0011)b *2-5
± 117.25d ± 1110101.01b ± 1.11010101b*26
Ми бачимо, що десяткова точка "плаває", щоб забезпечити нормалізацію. То йде вліво і порядок отримує знак плюс, то - вправо, тоді у порядку знак мінус. Звідси і термін - плаваюча точка (floating point).