Изменения
→Сложение и вычитание
Вещественные числа обычно представляются в виде чисел с плавающей запятой. Числа с плавающей запятой — один из возможных способов представления действительных чисел, который является компромиссом между точностью и диапазоном принимаемых значений, его можно считать аналогом экспоненциальной записи чисел, но только в памяти компьютера.
При этом лишь некоторые из вещественных чисел могут быть представлены в памяти компьютера точным значением, в то время как остальные числа представляются приближёнными значениями.
Более простым вариантом представления вещественных чисел является вариант с фиксированной точкой, когда целая и вещественная части хранятся отдельно. Например, на целую часть отводится всегда <tex>X</tex> бит и на дробную отводится всегда <tex>Y</tex> бит. Такой способ в архитектурах процессоров не присутствует. Отдаётся предпочтение числам с плавающей запятой, как компромиссу между диапазоном допустимых значений и точностью. == Нормальная и нормализованная форма == '''Нормальной формой''' (англ. ''normal form'') числа с плавающей запятой называется такая форма, в которой мантисса (без учёта знака) в десятичной системе находится на полуинтервале <tex>[0; 1)</tex>. Такая форма записи имеет недостаток: некоторые числа записываются неоднозначно (например, <tex>0{,}0001</tex> можно записать в 4 формах — <tex>0{,}0001 \times 10</tex><sup><tex>0</tex></sup>, <tex>0{,}001 \times 10</tex><sup><tex>−1</tex></sup>, <tex>0{,}01 \times 10</tex><sup><tex>−2</tex></sup>, <tex>0{,}1 \times 10</tex><sup><tex>−3</tex></sup>), поэтому распространена также другая форма записи — '''нормализованная''' (англ. ''normalized''), в которой мантисса десятичного числа принимает значения от <tex>1</tex> (включительно) до <tex>10</tex> (не включительно), а мантисса двоичного числа принимает значения от <tex>1</tex> (включительно) до <tex>2</tex> (не включительно). То есть в мантиссе слева от запятой до применения порядка находится ровно один знак. В наиболее распространённом формате такой форме любое число (кроме <tex>0</tex>) записывается единственным образом. Ноль же представить таким образом невозможно, поэтому стандарт предусматривает специальную последовательность битов для задания числа <tex>0</tex> (а заодно и некоторых других [[#Особые значения чисел с плавающей запятой представляется точкой|полезных чисел]], таких как <tex>-\infty</tex> и <tex>+\infty</tex>).Так как старший двоичный разряд (целая часть) мантиссы вещественного числа в нормализованном виде последовательности битоввсегда равен «<tex>1</tex>», то его можно не записывать, сэкономив таким образом один бит, что и используется в стандарте IEEE 754. В позиционных системах счисления с основанием большим, чем <tex>2</tex> (в троичной, четверичной и др.), этого замечательного свойства нет (ведь целая часть там может быть не только единицей). == Типы чисел с плавающей точкой (по IEEE 754) ===== Число половинной точности (''Binary16'', ''Half precision'') === '''Число́ полови́нной то́чности''' — компьютерный формат представления чисел, занимающий в памяти половину машинного слова (в случае 32-битного компьютера — <tex>16</tex> бит или <tex>2</tex> байта). В силу невысокой точности этот формат представления чисел с плавающей запятой обычно используется в видеокартах, где небольшой размер и высокая скорость работы важнее точности вычислений. {|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="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!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="border: none"| |colspan=3 style="border: none; border-left: 1px solid gray; text-align: left"|14|colspan=2 style="border: none; border-right: 1px solid gray; text-align: right"|10|style="border: none"| |colspan=6 style="border: none; border-left: 1px solid gray; text-align: left"|9|colspan=4 style="border: none; border-right: 1px solid gray; text-align: right"|0|}Порядок записан [[Представление целых чисел: прямой код, код со сдвигом, дополнительный код|со сдвигом]] '''<tex>-15</tex>'''. То есть чтобы получить актуально значение порядка нужно вычесть из которых кодирует собой мантиссу него сдвиг. Сдвиг можно получить по формуле <tex>2^{b-1}-1</tex>, где <tex>b</tex> {{---}} число бит, отведенное на хранение порядка (в случае числаполовинной точности <tex>b=5</tex>). '''Ограничения точности'''* Целые от нуля до <tex>2048</tex> передаются как есть.* Целые от <tex>2049</tex> до <tex>4096</tex> округляются к ближайшему чётному целому.* Целые от <tex>4097</tex> до <tex>8192</tex> округляются до ближайшего целого, делящегося нацело на четыре.* Целые от <tex>8193</tex> до <tex>16384</tex> округляются до ближайшего целого, делящегося на восемь.* Целые от <tex>16385</tex> до <tex>32768</tex> округляются до ближайшего целого, делящегося на шестнадцать.* Целые от <tex>32769</tex> до <tex>65535</tex> округляются до ближайшего целого, делящегося на тридцать два. === Число одинарной точности (''Binary32'', ''Single precision'', ''float'') === '''Число́ одина́рной то́чности''' — компьютерный формат представления чисел, занимающий в памяти одно машинное слово (в случае 32-битного компьютера — <tex>32</tex> бита или <tex>4</tex> байта). Используется для работы с вещественными числами везде, где не нужна очень высокая точность. {|class="wikitable" style="background-color: transparent; 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=8 style="background-color: lightgreen; border: thin solid black"|Порядок (8 бит)!colspan=24 style="background-color: lightcoral; border: thin solid black"|Мантисса (23+1 бита)|-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!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="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: 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: 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"||-|style="border: none"| |colspan=4 style="border: none; border-left: 1px solid gray; text-align: left"|30|colspan=4 style="border: none; border-right: 1px solid gray; text-align: right"|23|style="border: none"| |colspan=20 style="border: none; border-left: 1px solid gray; text-align: left"|22|colspan=3 style="border: none; border-right: 1px solid gray; text-align: right"|0|}Порядок записан со сдвигом '''<tex>-127</tex>'''. === Число двойной точности (''Binary64'', ''Double precision'', ''double'') === '''Число́ двойно́й то́чности''' — компьютерный формат представления чисел, другая часть занимающий в памяти два машинных слова (в случае 32-битного компьютера — показатель степени<tex>64</tex> бита или <tex>8</tex> байт). Часто используется благодаря своей неплохой точности, даже несмотря на двойной расход памяти и ещё один сетевого трафика относительно чисел одинарной точности. {|class="wikitable" style="border-collapse: collapse; border: none"|-!colspan=7 style="background-color: powderblue; border: thin solid black; border-bottom: none"|Знак|-!style="background-color: powderblue; border: thin solid black; border-top: none"|!colspan=11 style="background-color: lightgreen; border: thin solid black"|Порядок<br />(11 бит)!colspan=53 style="background-color: lightcoral; border: thin solid black"|Мантисса<br />(52+1 бит используется для указания знака числа)|-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!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!style="background-color: lightgreen; border: thin solid black"|0!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: 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: 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: 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: 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: lightcoral; border: thin solid black"|0!style="background-color: lightcoral; border: thin solid black"|0|-|style="border: none"| |colspan=4 style="border: none; border-left: 1px solid gray; text-align: left"|62|colspan=7 style="border: none; border-right: 1px solid gray; text-align: right"|52|style="border: none"| |colspan=48 style="border: none; border-left: 1px solid gray; text-align: left"|51|colspan=4 style="border: none; border-right: 1px solid gray; text-align: right"|0|}Порядок записан со сдвигом '''<tex>-1023</tex>'''. === Число четверной точности (''Binary128'', ''Quadruple precision'') === '''Число́ четверно́й то́чности''' — компьютерный формат представления чисел, занимающий в памяти четыре машинных слова (в случае 32-битного компьютера — <tex>128</tex> бит или <tex>16</tex> байт). Используется в случае необходимости крайне высокой точности. {|class="wikitable" style="border-collapse: collapse; border: none"|-!colspan=7 style="background-color: powderblue; border: thin solid black; border-bottom: none"|Знак|-!style="background-color: powderblue; border: thin solid black; border-top: none"|!colspan=15 style="background-color: lightgreen; border: thin solid black"|Порядок<br />(15 бит)!colspan=47 style="background-color: lightcoral; border: thin solid black"|Мантисса<br />(112+1 бит)|-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!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!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!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: 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: 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: 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: 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="border: none"| |colspan=8 style="border: none; border-left: 1px solid gray; text-align: left"|126|colspan=7 style="border: none; border-right: 1px solid gray; text-align: right"|112|style="border: none"| |colspan=38 style="border: none; border-left: 1px solid gray; text-align: left"|111|}<br />{|class="wikitable" style="border-collapse: collapse; border: none"|-!colspan=66 style="background-color: lightcoral; border: thin solid black"|Мантисса<br />(112+1 бит)|-style="text-align: right"!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: 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: 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: 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: 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: 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: 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=66 style="border: none; border-right: 1px solid gray; text-align: right"|0|}Порядок записан со сдвигом '''<tex>-16383</tex>'''. Обычно этот формат реализуется программно, случаи аппаратной реализации крайне редки. Также не гарантируется поддержка этого типа в языках программирования, хотя кое-где она и реализована (например, компилятор gcc для архитектуры x86 позволяет использовать тип __float128, являющийся программной реализацией числа с четверной точностью).В совокупности эти факторы делают Quadruple весьма экзотичным и редко встречающимся форматом чисел с плавающей запятой.
==== Нормальная форма и нормализованная форма =Диапазон значений чисел с плавающей запятой ===Диапазон чисел, которые можно записать данным способом, зависит от количества бит, отведённых для представления мантиссы и показателя. Пара значений показателя (когда все разряды нули и когда все разряды единицы) зарезервирована для обеспечения возможности представления специальных чисел. К ним относятся ноль, значения NaN (Not a Number, "не число", получается как результат операций типа деления нуля на ноль) и <tex>\pm\infty</tex>.
<!-- TODO: Выкинуть нафиг эту бессмысленную таблицу, переписать весь раздел, привести распределение значений и формулу для подсчета их количества -->{| class=== "wikitable" !Название в IEEE 754|| Название типа переменной в Си || Диапазон чисел, представимых значений || Бит в формате с плавающей запятой ===мантиссе || Бит на переменную |-Диапазон чисел |Half precision||-||6, которые можно записать данным способом10×10<sup>-5</sup>..65504||11||16 |- |Single presicion||float||-3, зависит от количества бит, отведённых для представления мантиссы и показателя4×10<sup>38</sup>. Пара значений показателя зарезервирована для обеспечения возможности представления специальных чисел. К ним относятся значения [http:3,4×10<sup>38</sup>||23||32 |- |Double precision||double||-1,7×10<sup>308</rusup>.wikipedia.org1,7×10<sup>308</wiki/NaN NaN] sup>||53||64 |- |Extended precision||На некоторых архитектурах (Not a Number, не числонапример в сопроцессоре Intel) и +/long double||-INF (Infinity3, [http:/4×10<sup>4932</rusup>.wikipedia.org/wiki/%D0%91%D0%B5%D1%81%D0%BA%D0%BE%D0%BD%D0%B5%D1%87%D0%BD%D0%BE%D1%81%D1%82%D1%8C бесконечность])3, получающихся в результате операций типа деления на ноль нуля, положительных и отрицательных чисел.4×10<sup>4932||65||80 |}
== Особые значения чисел с плавающей точкой ===== Ноль (со знаком) ===Как уже было оговорено выше, в нормализованной форме числа с плавающей точкой невозможно представить ноль. Поэтому для его представления зарезервированы специальные значения мантиссы и порядка {{---}} число считается нулём, если все его биты, кроме знакового, равны нулю. При этом в зависимости от значения бита знака ноль может быть как положительным, так и отрицательным. {| class="standardwikitable" style="border-collapse: collapse; border: none"!Точность || Одинарная || Двойная || Расширенная
|-
! Размер (байты)colspan=5 style="background-color: powderblue; border: thin solid black; border-bottom: none"| 4 || 8 || 10Знак
|-
! Число десятичных знаков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"|0!style="background-color: lightgreen; border: thin solid black"|0!style="background-color: lightgreen; border: thin solid black"| 7 0!style="background-color: lightgreen; border: thin solid black"|0!style="background-color: lightgreen; border: thin solid black"| 15 0!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"| 19 = <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|} '''Арифметика нуля со знаком'''<br/>Арифметика отрицательного нуля аналогична таковой для любого отрицательного числа и понятна интуитивно. Вот несколько примеров: * <tex>\frac{-0}{ \left| x \right| } = -0\,\! Наименьшее значение </tex> (если <tex>x\ne0</tex>) * <tex>(-0) \cdot (-0)= +0\, denorm\!</tex> * <tex>\left| 1x \right| \cdot (-0) = -0\,\!</tex> * <tex>x + (\pm 0) = x\,4×10\!<sup/tex>−45 * <tex>(-0) + (-0) = -0\,\!</suptex> * <tex> || 5(+0) + (+0) = +0\,0×10\!<sup/tex>−324 * <tex>\frac{-0}{-\infty} = +0\,\!</suptex> * <tex>\frac{\left|x\right| 1}{-0} = -\infty\,9×10\!<sup/tex>−4951 (если <tex>x\ne0</suptex>) === Неопределенность (''NaN'') ==='''NaN''' {{---}} это аббревиатура от фразы "''not a number''". NaN является результатом арифметических операций, если во время их выполнения произошла ошибка (примеры см. ниже). В IEEE 754 NaN представлен как число, в котором все двоичные разряды порядка {{---}} единицы, а мантисса не нулевая. {|class="wikitable" style="border-collapse: collapse; border: none"
|-
! Наименьшее значение (>0), normalcolspan=5 style="background-color: powderblue; border: thin solid black; border-bottom: none"| 1,2×10<sup>−38</sup> || 2,3×10<sup>−308</sup> || 3,4×10<sup>−4932</sup>Знак
|-
! Наибольшее значение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"| 31!style="background-color: lightgreen; border: thin solid black"|1!style="border: none"|1,4×10!style="background-color: lightcoral; border: thin solid black"|<sup>0</sup>+38/<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,7×10</sub>!style="background-color: lightcoral; border: thin solid black"|<sup>+3080</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,1×10</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>+49320</sup>/<sub>1</sub>!style="background-color: transparent; border: none"| = <tex>NaN</tex>
|-
|-
! Размеры полей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-8color: lightgreen; border: thin solid black"|1!style="background-23 color: lightgreen; border: thin solid black"|1!style="background-color: lightgreen; border: thin solid black"| 1!style="background-11color: lightgreen; border: thin solid black"|1!style="background-52 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-15color: lightcoral; border: thin solid black"|0!style="background-1color: 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"| = <tex>\pm\infty</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-63align: right"|0
|}