Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Бесконечности
В число с плавающей запятой можно записать значение или . Бесконечности позволяют получить хотя бы близкий к правильному результат вычисления в случае переполнения. Согласно стандарту IEEE 754 число с плавающей запятой считается равным бесконечности, если все двоичные разряды его порядка - единицы, а мантисса равна нулю. Знак бесконечности определяется знаковым битом числа. Получить бесконечность можно при переполнении и при делении ненулевого числа на ноль. При этом
NaN - это аббревиатура от фразы " not a number". NaN является результатом арифметических операций, если во время их выполнения произошла ошибка. В IEEE 754 NaN представлен как число, в котором все двоичные разряды порядка - единицы, а мантисса не нулевая.
Минимальное значение числа формата float:
Минимальному смещенному поряду 000000012 = 110 соответствует реальный порядок числа рmin = 1 – 127 = -126 (порядок 000000002 зарезервирован для представления денормализованных чисел). Минимальное значение мантиссы 1, 0000 0000 0000 0000 0000 0002, что соответствует 1 в 10 с.с. Таким образом, минимальное нормализованное число в формате float получается равным: 1× 2-126 ≈ 1.175494 × 10-38
Денормализованные числа (denormalized/subnormal numbers - DeN) - это способ увеличить количество представимых числом с плавающей запятой значений около нуля, для повышения точности вычислений. Каждое значение денормализованного числа меньше самого маленького нормализованного (" обычного") значения числа с плавающей запятой. Согласно стандарту: 1.Е сли порядок равен своему минимальному значению (000000002 = -12710) и все биты мантиссы равны нулю, то это . Знак нуля определяется значением знакового разряда. 2. Если же порядок равен (000000002), а мантисса не равна нулю, то это число с порядком, на единицу большим минимального (-126) и данной мантиссой, целая часть которой считается равной нулю, а не единице. Таким образом минимальное положительное денормализованное число в формате float:
0 0000 0000 0000 0000 0000 0000 0000 0012 = 1 × 2-23 × 2-126 ≈ 1.401298 × 10-45
Хоть денормализованные числа и позволяют бороться с погрешностями и обрабатывать очень маленькие значения, за эти возможности приходится дорого платить. Ввиду сложности обработка денормализованных чисел крайне редко реализуется на аппаратном уровне - вместо этого используются программные реализации, работающие значительно медленнее. В современных процессорах обработка денормализованных чисел происходит в десятки раз медленнее, чем обработка нормализованных чисел.
|