Основы объектно-ориентированного программирования на языке C# book | Page 99
6.7 Зображення дiйсних чисел
знак числа порядок знак порядку мантиса
b) з характеристикою:
знак числа характеристика мантиса
Введення характеристики не вимагає видiлення одного бiта для
знака порядку i спрощує виконання операцiй порiвняння (<,>,≤,≥)
та арифметичних операцiй над дiйсними числами.
Найрозповсюдженiшим способом реалiзацiı̈ дiйсних чисел у комп’ю-
терi є використання зображення з характеристикою, що отримується
з порядку додаванням такого зсуву, щоб характеристика була пози-
тивною. Нехай, наприклад, на характеристику видiляється 8 бiтiв. У
8 розрядах вмiщуються двiйковi числа вiд 00000000 до 11111111 (вiд 0
до 255 – у десятковiй системi). Усього маємо 256 значень. Розумно цi
значення порiвну розподiлити мiж вiд’ємними й додатними значення-
ми порядку числа: вiд –127 до 128. Мiнiмальному значенню порядку
має вiдповiдати нульове значення характеристики. Отже, отримуємо
змiщення, що дорiвнює 127. Для обчислення iстинного порядку числа
можна використовувати формулу x = 2 n−1 + k + p, де n – кiлькiсть
бiтiв, вiдведених для характеристики; p – порядок числа; k – попра-
вочний коефiцiєнт фiрми IBM, рiвний −1 (табл. 6.6).
Тип Характеристика Кiлькiсть бiтiв на характеристику
float x = 2 7 + p − 1
double
x = 2 10 + p − 1
8
11
Табл. 6.6: Характеристика.
Для простоти розглянемо тип float , оскiльки вiн найкоротший.
Зображення iнших типiв вiдрiзняються вiд нього тiльки кiлькiсно.
Зауважимо, що в процесорах Intel байти у багатобайтових значеннях
переставляються так, що молодший iде першим, а старший – остан-
нiм.
У мантисi зберiгається двiйкове цiле число. Щоб одержати iстинне
значення мантиси, до неı̈ треба умовно додати лiворуч одиницю з кра-
пкою. Таким чином, маючи 23 двiйкових розряди, ми записуємо числа
з точнiстю до 24 двiйкових розрядiв. Це пов’язано з тим, що викори-
стовується нормалiзоване зображення дiйсного числа. Нормалiзацiя
означає, що мантиса (для двiйкового зображення), крiм випадку, ко-
ли вона дорiвнює 0, має знаходитися в iнтервалi 2 −1 ≤ M < 1.
99