Лекції - GL22
Досі ми використовували лише цілі числа: знакові та беззнакові. Можна вмовитися вставляти в ці числа десяткову точку на фіксованій позиції. Так ми отримаємо числа із фіксованою точкою. Але такий підхід не можна визнати задовільним, адже на практиці доводиться вести обчислення, в яких одночасно беруть участь дуже великі і дуже маленькі числа (за абсолютною величиною). Для таких обчислень введена система чисел з плаваючою точкою (floating-pointnumbers), або просто плаваючих чисел. Прикметник "плаваючий" показує, що десяткова точка не зафіксована. Для плаваючих чисел введено спеціальний стандарт IEEE754. Він реалізований у досліджуваних нами процесорах.
Плаваюче число може мати багато еквівалентних уявлень. Наприклад,
.
Загальне уявлення плаваючого числа має вигляд:
Тутb-основа системи числення.di- цифри (





Числа, які у плаваючою системі, розташовані на числовій осі нерівномірно. Між 1 і 2 лежить стільки ж чисел, скільки між


Числа з одинарною точністю
Подання плаваючого числа з одинарною точністюзаймає 4 байти, тобто. його довжина становить 32 біти. Біт 31 відведений для знака числа (0 - позитивні, 1 - негативні, про уявлення плаваючого нуля - розмова особливий), біти 30:23 - для порядку числа, біти 22:0 - для його мантиси.
Тут є свої особливості.
Заснування системи численняb= 2. Система нормалізована. Томуd0= 1 (якщо число не є нулем). Але якщо старша цифра мантиси завжди дорівнює 1, навіщо її зберігати? За цей рахунок виграється додатковий розряд мантиси та збільшується точність. Старша цифра двійкового уявлення зветься "прихований біт" (hiddenbit).
Порядок може бути позитивним та негативним. Так як на порядок відведено 8 біт, то, як ми знаємо, . У якому форматі зберігати порядок? Напрошується рішення: у додатковому коді. Виявляється, це незручно, і використовується уявлення зі зміщенням :

Тепер подивимося приклад подання числа у форматі зі звичайною точністю, але спочатку навчимося переводити з десяткової у двійкову форму числа від 0 до 1. Для цього зауважимо, що якщо


приклад. –26.375 подати у форматі зі звичайною точністю.
Абсолютна величина числа дорівнює 26375.
Двійкове уявлення цілої частини: 2610= 110102, як було показано у прикладі 1.1.
Обчислення двійкового уявлення дробової частини числа, подамо у вигляді схеми:
(0.75 - 0) * 2 = 0.75 * 2 = 1.5
(1.5 - 1) * 2 = 0.5 * 2 = 1
Отже, 0,37510 = 0,0112. Перевіримо:.
Ми отримали, що 26.37510 = 11010.0112. Нормалізуємо це число. Для цього потрібно перемістити десяткову точку вліво на чотири позиції. Отримаємо. Обчислимо зміщений порядок: Формуємо уявлення:
символ = 1, т.к. число негативне,
порядок = 1000 0011,
мантіс = 101 0011 0000 0000 0000 0000 (старший біт прихований!)
1100 0001 1101 0011 0000 0000 0000 0000 = C1D30000h.
Перевірку правильності обчислень проведемо кількома способами.
Програми мовою Сі.
Перетворимо покажчик на плаваюче число до покажчика на довге ціле і виведемо на екран вміст.