Представление вещественных чисел — различия между версиями
Proshev (обсуждение | вклад) (→Cсылки) |
Proshev (обсуждение | вклад) (→Диапазон чисел, представимых в формате с плавающей запятой) |
||
Строка 63: | Строка 63: | ||
!style="background-color: powderblue; border: thin solid black"|0 | !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"| | + | !style="background-color: lightgreen; border: thin solid black"|0 |
− | !style="background-color: lightgreen; border: thin solid black"| | + | !style="background-color: lightgreen; border: thin solid black"|0 |
− | !style="background-color: lightgreen; border: thin solid black"| | + | !style="background-color: lightgreen; border: thin solid black"|0 |
− | !style="background-color: lightgreen; border: thin solid black"| | + | !style="background-color: lightgreen; border: thin solid black"|0 |
− | !style="background-color: lightgreen; border: thin solid black"| | + | !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 | ||
<!-- 24 бита --> | <!-- 24 бита --> | ||
!style="background-color: lightgreen; border: thin solid black"|0 | !style="background-color: lightgreen; 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"| | + | !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 | ||
Строка 119: | Строка 119: | ||
!colspan=52 style="background-color: lightcoral; border: thin solid black"|(52 бита)<br />Мантисса | !colspan=52 style="background-color: lightcoral; border: thin solid black"|(52 бита)<br />Мантисса | ||
|-style="text-align: right" | |-style="text-align: right" | ||
− | !style="background-color: powderblue; border: thin solid black"| | + | !style="background-color: powderblue; border: thin solid black"|0 |
− | !style="background-color: lightgreen; border: thin solid black"| | + | !style="background-color: lightgreen; border: thin solid black"|0 |
− | !style="background-color: lightgreen; border: thin solid black"| | + | !style="background-color: lightgreen; border: thin solid black"|0 |
− | !style="background-color: lightgreen; border: thin solid black"| | + | !style="background-color: lightgreen; border: thin solid black"|0 |
− | !style="background-color: lightgreen; border: thin solid black"| | + | !style="background-color: lightgreen; border: thin solid black"|0 |
− | !style="background-color: lightgreen; border: thin solid black"| | + | !style="background-color: lightgreen; border: thin solid black"|0 |
− | !style="background-color: lightgreen; border: thin solid black"| | + | !style="background-color: lightgreen; border: thin solid black"|0 |
− | !style="background-color: lightgreen; border: thin solid black"| | + | !style="background-color: lightgreen; border: thin solid black"|0 |
<!-- 56 бит --> | <!-- 56 бит --> | ||
− | !style="background-color: lightgreen; border: thin solid black"| | + | !style="background-color: lightgreen; border: thin solid black"|0 |
− | !style="background-color: lightgreen; border: thin solid black"| | + | !style="background-color: lightgreen; border: thin solid black"|0 |
− | !style="background-color: lightgreen; border: thin solid black"| | + | !style="background-color: lightgreen; border: thin solid black"|0 |
− | !style="background-color: lightgreen; border: thin solid black"| | + | !style="background-color: lightgreen; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
<!-- 48 бит --> | <!-- 48 бит --> | ||
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
<!-- 40 бит --> | <!-- 40 бит --> | ||
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
<!-- 32 бита --> | <!-- 32 бита --> | ||
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
<!-- 24 бита --> | <!-- 24 бита --> | ||
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
<!-- 16 бит --> | <!-- 16 бит --> | ||
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
<!-- 8 бит --> | <!-- 8 бит --> | ||
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
− | !style="background-color: lightcoral; border: thin solid black"| | + | !style="background-color: lightcoral; border: thin solid black"|0 |
|- | |- | ||
|colspan=4 style="border: none; border-left: 1px solid gray; text-align: left"|63 | |colspan=4 style="border: none; border-left: 1px solid gray; text-align: left"|63 |
Версия 04:54, 1 ноября 2010
Вещественные числа обычно представляются в виде чисел с плавающей запятой.
Определение: |
Плавающая запятая — форма представления дробных чисел, в которой число хранится в форме мантиссы и показателя степени. При этом число с плавающей запятой имеет фиксированную относительную точность и изменяющуюся абсолютную. Наиболее часто используемое представление утверждено в стандарте IEEE 754. |
При этом лишь некоторые из вещественных чисел могут быть представлены в памяти компьютера точным значением, в то время как остальные числа представляются приближёнными значениями.
В наиболее распространённом формате число с плавающей запятой представляется в виде последовательности битов, часть из которых кодирует собой мантиссу числа, другая часть — показатель степени, и ещё один бит используется для указания знака числа, 0 - если число положительное, 1 - если число отрицательное.
Нормальная форма и нормализованная форма
Нормальной формой числа с плавающей запятой называется такая форма, в которой мантисса (без учёта знака) находится на полуинтервале [0; 1). Такая форма записи имеет недостаток: некоторые числа записываются неоднозначно (например, 0,0001 можно записать в 4 формах — 0,0001×100, 0,001×10−1, 0,01×10−2, 0,1×10−3), поэтому распространена также другая форма записи — нормализованная, в которой мантисса десятичного числа принимает значения от 1 (включительно) до 10 (не включительно), а мантисса двоичного числа принимает значения от 1 (включительно) до 2 (не включительно). В такой форме любое число (кроме 0) записывается единственным образом. Недостаток заключается в том, что в таком виде невозможно представить 0, поэтому представление чисел в информатике предусматривает специальный признак (бит) для числа 0. Так как старший разряд (целая часть числа) мантиссы двоичного числа (кроме 0) в нормализованном виде равен «1», то при записи мантиссы числа в эвм старший разряд можно не записывать, что и используется в стандарте IEEE 754. В позиционных системах счисления с основанием большим, чем 2 (в троичной, четверичной и др.), этого свойства нет.
Диапазон чисел, представимых в формате с плавающей запятой
Диапазон чисел, которые можно записать данным способом, зависит от количества бит, отведённых для представления мантиссы и показателя. Пара значений показателя зарезервирована для обеспечения возможности представления специальных чисел. К ним относятся значения NaN (Not a Number, не число) и +/-INF (Infinity, бесконечность), получающихся в результате операций типа деления на ноль нуля, положительных и отрицательных чисел.
Число́ полови́нной то́чности — компьютерный формат представления чисел, занимающий в памяти половину компьютерного слова (в случае 32-битного компьютера — 16 бит или 2 байта). Диапазон значений ± 2−24(5.96E-8) — 65504. Приблизительная точность — 3 знака (10 двоичных знаков, log10(211)).
Знак | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Экспо- нента |
Мантисса | ||||||||||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
15 | 8 | 7 | 0 |
Число́ одина́рной то́чности — компьютерный формат представления чисел, занимающий в компьютерная памяти одну ячейку (машинное слово; в случае 32-битного компьютера — 32 бита или 4 байта). Как правило, обозначает формат числа с плавающей точкой стандарта IEEE 754.
Знак | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Экспонента | Мантисса | |||||||||||||||||||||||||||||||
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 | |
31 | 24 | 23 | 16 | 15 | 8 | 7 | 0 |
Число́ двойно́й то́чности — компьютерный формат представления чисел, занимающий в памяти две последовательных ячейки (компьютерных слова; в случае 32-битного компьютера — 64 бита или 8 байт). Как правило, обозначает формат числа с плавающей запятой стандарта IEEE 754.
Знак | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
(11 бит) Экспонента |
(52 бита) Мантисса | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
63 | 56 | 55 | 48 | 47 | 40 | 39 | 32 | 31 | 24 | 23 | 16 | 15 | 8 | 7 | 0 |