Изменения

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

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

4641 байт добавлено, 08:00, 11 ноября 2011
Ноль (со знаком)
!style="background-color: lightcoral; border: thin solid black"|0
!style="background-color: transparent; border: none"|&nbsp;=&nbsp;<tex>\pm0</tex>
|-
|style="border: none"|
|colspan=2 style="border: none; border-left: 1px solid gray; text-align: left"|14
|colspan=3 style="border: none; border-right: 1px solid gray; text-align: right"|10
|style="border: none"|
|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
|}
Согласно стандарту выполняются следующие свойства:
* <tex> +0 = -0 </tex>
* <tex>\frac{-0}{ \left| x \right| } = -0\,\!</tex> (если <tex>x\ne0</tex>)* <tex>(-0) \cdot (-0) = +0\,\!</tex>* <tex>\left| x \right| \cdot (-0) = -0\,\!</tex>* <tex>x + (\pm 0) = x\,\!</tex>* <tex>(-0) + (-0) = -0\,\!</tex>* <tex>(+0) + (+0) = +0\,\!</tex>* <tex>\frac{-0}{-\infty} = +0\,\!</tex>* <tex>\frac{\left|x\right|}{-0} = -\infty\,\!</tex> (если <tex>x\ne0</tex>) === Бесконечность (со знаком) ===Для приближения ответа к правильному при переполнении, в double можно записать бесконечное значение. Так же, как и в случае с нолем, для этого используются специальные значение мантиссы и экспоненты.{|class="wikitable" style="border-collapse: collapse; border: none"|-!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"|Порядок!colspan=11 style="background-color: lightcoral; border: thin solid black"|Мантисса!style="border: none"| |-style="text-align: right"!style="background-color: powderblue; border: thin solid black"|<sup>0</sup>/<sub>1</sub>!style="background-color: lightgreen; border: thin solid black"|1!style="background-color: lightgreen; border: thin solid black"|1!style="background-color: lightgreen; border: thin solid black"|1!style="background-color: lightgreen; border: thin solid black"|1!style="background-color: lightgreen; border: thin solid black"|1!style="border: none"|1,!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!style="background-color: lightcoral; border: thin solid black"|0!style="background-color: lightcoral; border: thin solid black"|0!style="background-color: transparent; border: none"|&nbsp;=&nbsp;<tex>\pm\infty</tex>|}Бесконечное значение можно получить при переполнении или при делении ненулевого числа на ноль. === Неопределенность ===В математике встречается понятие неопределенности. В стандарте double предусмотрено псевдочисло, которое арифметическая операция может вернуть даже в случае ошибки.{|class="wikitable" style="border-collapse: collapse; border: none"|-!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"|Порядок!colspan=11 style="background-color: lightcoral; border: thin solid black"|Мантисса!style="border: none"| |-style="text-align: right"!style="background-color: powderblue; border: thin solid black"|<sup>0</sup>/<sub>1</sub>!style="background-color: lightgreen; border: thin solid black"|1!style="background-color: lightgreen; border: thin solid black"|1!style="background-color: lightgreen; border: thin solid black"|1!style="background-color: lightgreen; border: thin solid black"|1!style="background-color: lightgreen; border: thin solid black"|1!style="border: none"|1,!style="background-color: lightcoral; border: thin solid black"|<sup>0</sup>/<sub>1</sub>!style="background-color: lightcoral; border: thin solid black"|<sup>0</sup>/<sub>1</sub>!style="background-color: lightcoral; border: thin solid black"|<sup>0</sup>/<sub>1</sub>!style="background-color: lightcoral; border: thin solid black"|<sup>0</sup>/<sub>1</sub>!style="background-color: lightcoral; border: thin solid black"|<sup>0</sup>/<sub>1</sub>!style="background-color: lightcoral; border: thin solid black"|<sup>0</sup>/<sub>1</sub>!style="background-color: lightcoral; border: thin solid black"|<sup>0</sup>/<sub>1</sub>!style="background-color: lightcoral; border: thin solid black"|<sup>0</sup>/<sub>1</sub>!style="background-color: lightcoral; border: thin solid black"|<sup>0</sup>/<sub>1</sub>!style="background-color: lightcoral; border: thin solid black"|<sup>0</sup>/<sub>1</sub>!style="background-color: transparent; border: none"|&nbsp;=&nbsp;<tex>NaN</tex>|} Неопределенность можно получить в нескольких случаях. Приведем некоторые из них:* <tex> f(NaN) = NaN </tex>, где <tex> f </tex> - любая арифметическая операция* <tex> \infty + (-\infty) = NaN </tex>* <tex> 0 \times \infty = NaN </tex>* <tex> \frac{\pm0}{\pm0} = \frac{\pm \infty}{\pm \infty} = NaN </tex>* <tex> \sqrt{x} = NaN </tex>, где <tex> x < 0 </tex>
== Машинная эпсилон ==
Анонимный участник

Навигация