Изменения

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

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

2383 байта добавлено, 19:33, 18 октября 2011
м
Нет описания правки
=== Нормальная форма и нормализованная форма ===
'''Нормальной формой''' числа с плавающей запятой называется такая форма, в которой мантисса (без учёта знака) в десятичной системе находится на полуинтервале [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(а заодно и некоторых других полезных чисел, таких как <tex>-\infty</tex> и <tex>+\infty</tex>).Так как старший двоичный разряд (целая часть числа) мантиссы двоичного числа (кроме 0) в нормализованном виде всегда равен «1», то при записи мантиссы числа в эвм старший разряд его можно не записывать, сэкономив таким образом один бит, что и используется в стандарте IEEE 754. В позиционных системах счисления с основанием большим, чем 2 (в троичной, четверичной и др.), этого замечательного свойства нет.{|class="wikitable" |-!colspan=5 style="background-color: powderblue; border: thin solid black; border-bottom: none"|Знак|-!style="background-color: powderblue; border: thin solid black; border-top: none"|!colspan=5 style="background-color: lightgreen; border: thin solid black"|Экспо-<br />нента!colspan=11 style="background-color: lightcoral; border: thin solid black"|Мантисса|-style="text-align: right"!style="background-color: powderblue; border: thin solid black"|0!style="background-color: lightgreen; border: thin solid black"|0!style="background-color: lightgreen; border: thin solid black"|0!style="background-color: lightgreen; border: thin solid black"|0!style="background-color: lightgreen; border: thin solid black"|0!style="background-color: lightgreen; border: thin solid black"|0|1,!style="background-color: lightcoral; border: thin solid black"|0!style="background-color: lightcoral; border: thin solid black"|0<!-- 8 бит -->!style="background-color: lightcoral; border: thin solid black"|0!style="background-color: lightcoral; border: thin solid black"|0!style="background-color: lightcoral; border: thin solid black"|0!style="background-color: lightcoral; border: thin solid black"|0!style="background-color: lightcoral; border: thin solid black"|0!style="background-color: lightcoral; border: thin solid black"|0!style="background-color: lightcoral; border: thin solid black"|0!style="background-color: lightcoral; border: thin solid black"|0|-|colspan=3 style="border: none; border-left: 1px solid gray; text-align: left"|15|colspan=3 style="border: none; border-right: 1px solid gray; text-align: right"|10| |colspan=5 style="border: none; border-left: 1px solid gray; text-align: left"|9|colspan=5 style="border: none; border-right: 1px solid gray; text-align: right"|0|}
=== Диапазон чисел, представимых в формате с плавающей запятой ===
Диапазон чисел, которые можно записать данным способом, зависит от количества бит, отведённых для представления мантиссы и показателя. Пара значений показателя (когда все разряды нули и когда все разряды единицы) зарезервирована для обеспечения возможности представления специальных чисел. К ним относятся ноль, значения NaN (Not a Number, "не число) и +/-INF (Infinity", бесконечность), получающихся в результате получается как результат операций типа деления нуля на ноль нуля, положительных ) и отрицательных чисел<tex>\pm\infty</tex>.
<center>
<table border=1 CellSpacing="0" CellPadding="2">
<tr><th>Название (IEEE 754)</th><th>Тип(C)</th><th>Диапазон</th><th>МантиссаБиты мантиссы</th><th>БайтыБиты</th></tr>
<tr><td>RealHalf precision</td><td>2,9&times;10Нет<sup/td>-39</suptd>..16,710&times;10<sup>38-5</sup>..65504</td><td>11-1210+1</td><td>616</td></tr>
<tr><td>Singleprecision</td><td>1float</td><td>3,54&times;10<sup>-4538</sup>..3,4&times;10<sup>38</sup></td><td>7-823+1</td><td>432</td></tr>
<tr><td>Doubleprecision</td><td>5double</td><td>1,07&times;10<sup>-324308</sup>..1,7&times;10<sup>308</sup></td><td>15-1652+1</td><td>864</td></tr>
<tr><td>Extendedprecision</td><td>Нет, иногда long double</td><td>3,4&times;10<sup>-4932</sup>..13,14&times;10<sup>4932</sup></td><td>19-2064+1</td><td>1080</td></tr>
</table>
101
правка

Навигация