Изменения

Перейти к: навигация, поиск

Представление вещественных чисел

3163 байта добавлено, 21:47, 29 октября 2010
Нет описания правки
''Нормальной формой'' числа с плавающей запятой называется такая форма, в которой мантисса (без учёта знака) находится на полуинтервале [0; 1). Такая форма записи имеет недостаток: некоторые числа записываются неоднозначно (например, 0,0001 можно записать в 4 формах — 0,0001×10<sup>0</sup>, 0,001×10<sup>−1</sup>, 0,01×10<sup>−2</sup>, 0,1×10<sup>−3</sup>), поэтому распространена также другая форма записи — нормализованная, в которой мантисса десятичного числа принимает значения от 1 (включительно) до 10 (не включительно), а мантисса двоичного числа принимает значения от 1 (включительно) до 2 (не включительно). В такой форме любое число (кроме 0) записывается единственным образом. Недостаток заключается в том, что в таком виде невозможно представить 0, поэтому представление чисел в информатике предусматривает специальный признак (бит) для числа 0.
Так как старший разряд (целая часть числа) мантиссы двоичного числа (кроме 0) в нормализованном виде равен «1», то при записи мантиссы числа в эвм старший разряд можно не записывать, что и используется в стандарте [http://ru.wikipedia.org/wiki/IEEE_754 IEEE 754]. В позиционных системах счисления с основанием большим, чем 2 (в троичной, четверичной и др.), этого свойства нет.
 
=== Диапазон чисел, представимых в формате с плавающей запятой ===
Диапазон чисел, которые можно записать данным способом, зависит от количества бит, отведённых для представления мантиссы и показателя. На обычной 32-битной вычислительной машине, использующей двойную точность (64 бита), мантисса составляет 1 бит знак + 52 бита, показатель — 1 бит знак + 10 бит. Таким образом получаем диапазон точности примерно от
4,94{{e|−324}} до 1.79{{e|308}} (от 2<sup>−52</sup> × 2<sup>−1022</sup> до ~1 × 2<sup>1024</sup>). Пара значений показателя зарезервирована для обеспечения возможности представления специальных чисел. К ним относятся значения [[NaN]] (Not a Number, не число) и +/-INF (Infinity, [[бесконечность]]), получающихся в результате операций типа деления на ноль нуля, положительных и отрицательных чисел. Также сюда попадают денормализованные числа, у которых мантисса меньше единицы. В специализированных устройствах (например [[GPU]]) поддержка специальных чисел часто отсутствует. Существуют программные пакеты, в которых объём памяти выделенный под мантиссу и показатель задаётся программно, и ограничивается лишь объёмом доступной памяти ЭВМ.
 
<!-- ============================== Здесь будет добавлена ещё информация ===============-->
<!-- Перевод статьи не окончен -->
<!-- ================================================================================== -->
 
{| class="standard"
!Точность || Одинарная || Двойная || Расширенная
|-
! Размер (байты)
| 4 || 8 || 10
|-
! Число десятичных знаков
| 7 || 15 || 19
|-
! Наименьшее значение (>0), denorm
| 1,4{{e|−45}} || 5,0{{e|−324}} || 1,9{{e|−4951}}
|-
! Наименьшее значение (>0), normal
| 1,2{{e|−38}} || 2,3{{e|−308}} || 3,4{{e|−4932}}
|-
! Наибольшее значение
| 3,4×10<sup>+38</sup> || 1,7×10<sup>+308</sup> || 1,1×10<sup>+4932</sup>
|-
! Поля
| S-E-F || S-E-F || S-E-I-F
|-
! Размеры полей
| 1-8-23 || 1-11-52 || 1-15-1-63
|}
* S — знак, E — показатель степени, I — целая часть, F — дробная часть
* Так же, как и для целых, знаковый бит — старший.
419
правок

Навигация