Файл: Статья находится в разработке! Содержание убрать .doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 07.11.2023

Просмотров: 42

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Представление чисел с плавающей точкой

Эта статья находится в разработке!

Содержание

 [убрать

  • 1Плавающая точка

  • 2Нормальная и нормализованная формы

  • 3Числа двойной точности

  • 4Свойства чисел с плавающей точкой

  • 5Особые значения чисел с плавающей точкой

    • 5.1Ноль (со знаком)

    • 5.2Бесконечность (со знаком)

    • 5.3Неопределенность

    • 5.4Денормализованные числа

  • 6Машинная эпсилон

  • 7Unit in the last place (Unit of least precision)

  • 8Погрешность предиката "левый поворот"

    • 8.1Определения

    • 8.2Расчет

    • 8.3Ответ

  • 9Ссылки

[править]Плавающая точка

Определение:

Плавающая точка (floating point) - метод представления действительных чисел, при котором число хранится в виде мантиссы и показателя степени, а значение числа вычисляется по формуле: 
, где   - число,   - бит, отвечающий за знак числа,   - мантисса,   - основание степени,   - показатель степени.

Такой метод является компромиссом между точностью и диапазоном представляемых значений. Представление чисел с плавающей точкой рассмотрим на примере чисел двойной точности (double precision). Такие числа занимают в памяти два машинных слова (8 байт на 32-битных системах). Наиболее распространенное представление описано в стандарте IEEE 754.

Кроме чисел двойной точности также используются следующие форматы чисел:


  • половинной точности (half precision) (16 бит),

  • одинарной точности (single precision) (32 бита),

  • четверной точности (quadruple precision) (128 бит),

  • расширенной точности (extended precision) (80 бит).

При выборе формата программисты идут на разумный компромисс между точностью вычислений и размером числа.

[править]Нормальная и нормализованная формы

Определение:

Нормальной называется форма представления числа, при которой абсолютное значение мантиссы десятичного числа находится на полуинтервале  .

Недостатком такой записи является тот факт, что числа нельзя записать однозначно:  .

Определение:

Нормализованной называется форма представления числа, при которой абсолютное значение мантиссы десятичного числа лежит на полуинтервале  , а двоичного на полуинтервале  .

[править]Числа двойной точности

Число с плавающей точкой хранится в нормализованной форме и состоит из трех частей (в скобках указано количество бит, отводимых на каждую секцию в формате double):

  1. знак

  2. экспонента (показатель степени) (в виде целого числа в коде со сдвигом)

  3. мантисса (в нормализованной форме)

В качестве базы (основания степени) используется число  . Экспонента хранится со сдвигом  .

Знак







Экспонента
(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








Утверждение:

Итоговое значение числа вычисляется по формуле: 
.

[править]Свойства чисел с плавающей точкой

  1. В нормализованном виде любое отличное от нуля число представимо в единственном виде. Недостатком такой записи является тот факт, что невозможно представить число 0.

  2. Так как старший бит двоичного числа, записанного в нормализованной форме, всегда равен 1, его можно опустить. Это используется в стандарте IEEE 754.

  3. В отличие от целочисленных стандартов (например, integer), имеющих равномерное распределение на всем множестве значений, числа с плавающей точкой (double, например) имеют квазиравномерное распределение.

  4. Вследствие свойства 3, числа с плавающей точкой имеют постоянную относительную погрешность (в отличие от целочисленных, которые имеют постоянную абсолютную погрешность).

  5. Очевидно, не все действительные числа возможно представить в виде числа с плавающей точкой.

  6. Точно в таком формате представимы только числа, являющиеся суммой некоторых обратных степеней двойки (не ниже -53). Остальные числа попадают в некоторый диапазон и округляются до ближайшей его границы. Таким образом, абсолютная погрешность составляет половину величины младшего бита.

  7. В формате double представимы числа в диапазоне  .

[править]Особые значения чисел с плавающей точкой

[править]Ноль (со знаком)

В нормализованной форме невозможно представить ноль. Для его представления в стандарте зарезервированы специальные значения мантиссы и экспоненты.

Знак







Экспонента

Мантисса




0/1

0

0

0

0

0

1,

0

0

0

0

0

0

0

0

0

0

 


Согласно стандарту выполняются следующие свойства:



  •  (если  )













  •  (если  )

[править]Бесконечность (со знаком)

Для приближения ответа к правильному при переполнении, в double можно записать бесконечное значение. Так же, как и в случае с нолем, для этого используются специальные значение мантиссы и экспоненты.

Знак







Экспонента

Мантисса




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

 

Неопределенность можно получить в нескольких случаях. Приведем некоторые из них:

  • , где   - любая арифметическая операция







  • , где