ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 07.11.2023
Просмотров: 324
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Представление чисел с плавающей точкойЭта статья находится в разработке!
[править]Плавающая точка
Такой метод является компромиссом между точностью и диапазоном представляемых значений. Представление чисел с плавающей точкой рассмотрим на примере чисел двойной точности (double precision). Такие числа занимают в памяти два машинных слова (8 байт на 32-битных системах). Наиболее распространенное представление описано в стандарте IEEE 754.Кроме чисел двойной точности также используются следующие форматы чисел:
Недостатком такой записи является тот факт, что числа нельзя записать однозначно: .
[править]Числа двойной точностиЧисло с плавающей точкой хранится в нормализованной форме и состоит из трех частей (в скобках указано количество бит, отводимых на каждую секцию в формате double):
[править]Свойства чисел с плавающей точкой
Согласно стандарту выполняются следующие свойства:
Бесконечное значение можно получить при переполнении или при делении ненулевого числа на ноль.[править]НеопределенностьВ математике встречается понятие неопределенности. В стандарте double предусмотрено псевдочисло, которое арифметическая операция может вернуть даже в случае ошибки.
Неопределенность можно получить в нескольких случаях. Приведем некоторые из них:
| Содержание [убрать]
|
| Определение: |
| Плавающая точка (floating point) - метод представления действительных чисел, при котором число хранится в виде мантиссы и показателя степени, а значение числа вычисляется по формуле: |
-
половинной точности (half precision) (16 бит), -
одинарной точности (single precision) (32 бита), -
четверной точности (quadruple precision) (128 бит), -
расширенной точности (extended precision) (80 бит).
| Определение: |
| Нормальной называется форма представления числа, при которой абсолютное значение мантиссы десятичного числа находится на полуинтервале |
| Определение: |
| Нормализованной называется форма представления числа, при которой абсолютное значение мантиссы десятичного числа лежит на полуинтервале |
-
знак -
экспонента (показатель степени) (в виде целого числа в коде со сдвигом) -
мантисса (в нормализованной форме)
| Знак | | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | Экспонента (11 бит) | Мантисса (52+1 бит) | | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1, | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 000 | ||
| | 62 | 52 | | 51 | 0 | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Утверждение: |
| Итоговое значение числа вычисляется по формуле: |
-
В нормализованном виде любое отличное от нуля число представимо в единственном виде. Недостатком такой записи является тот факт, что невозможно представить число 0. -
Так как старший бит двоичного числа, записанного в нормализованной форме, всегда равен 1, его можно опустить. Это используется в стандарте IEEE 754. -
В отличие от целочисленных стандартов (например, integer), имеющих равномерное распределение на всем множестве значений, числа с плавающей точкой (double, например) имеют квазиравномерное распределение. -
Вследствие свойства 3, числа с плавающей точкой имеют постоянную относительную погрешность (в отличие от целочисленных, которые имеют постоянную абсолютную погрешность). -
Очевидно, не все действительные числа возможно представить в виде числа с плавающей точкой. -
Точно в таком формате представимы только числа, являющиеся суммой некоторых обратных степеней двойки (не ниже -53). Остальные числа попадают в некоторый диапазон и округляются до ближайшей его границы. Таким образом, абсолютная погрешность составляет половину величины младшего бита. -
В формате double представимы числа в диапазоне
.
| Знак | | |||||||||||||||||
| | Экспонента | Мантисса | | |||||||||||||||
| 0/1 | 0 | 0 | 0 | 0 | 0 | 1, | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | = | |
Согласно стандарту выполняются следующие свойства:
-
-
(если
) -
-
-
-
-
-
-
(если
)
| Знак | | |||||||||||||||||
| | Экспонента | Мантисса | | |||||||||||||||
| 0/1 | 1 | 1 | 1 | 1 | 1 | 1, | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | = | |
Бесконечное значение можно получить при переполнении или при делении ненулевого числа на ноль.[править]НеопределенностьВ математике встречается понятие неопределенности. В стандарте double предусмотрено псевдочисло, которое арифметическая операция может вернуть даже в случае ошибки.
| Знак | | |||||||||||||||||
| | Экспонента | Мантисса | | |||||||||||||||
| 0/1 | 1 | 1 | 1 | 1 | 1 | 1, | 0/1 | 0/1 | 0/1 | 0/1 | 0/1 | 0/1 | 0/1 | 0/1 | 0/1 | 0/1 | = | |
-
, где
- любая арифметическая операция -
-
-
-
, где