- Число одинарной точности
-
Число́ одина́рной то́чности (англ. Single precision, Single) — широко распространенный компьютерный формат представления вещественных чисел, занимающий в памяти 32 бита (4 байта). Как правило, под ним понимают формат числа с плавающей запятой стандарта IEEE 754.
Числа одинарной точности с плавающей запятой обеспечивают относительную точность 7-8 десятичных цифр в диапазоне от до примерно
В современных компьютерах вычисления с числами с плавающей запятой поддерживаются аппаратным сопроцессором (FPU — Floating Point Unit). Однако во многих вычислительных архитектурах нет аппаратной поддержки чисел с плавающей запятой и тогда работа с ними осуществляется программно.
Знак Экспонента Мантисса 0 0 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 = 0,15625 31 24 23 16 15 8 7 0 Для вычисления показателя степени из восьмиразрядного поля экспоненты вычитается смещение экспоненты равное 12710 = 7F16 = 011111112, (то есть, 011111002 - 011111112 = 12410 - 12710 = -310). Так как в нормализованной двоичной мантиссе целая часть всегда равна единице, то в поле мантиссы записывается только её дробная часть. Для вычисления мантиссы к единице добавляется дробная часть мантиссы из 23-х разрядного поля дробной части мантиссы 1,010000000000000000000002. Число равно произведению мантиссы со знаком на двойку в степени экспоненты = 1,012*210-310 = 1012*210-510 = 510*210-510 = 0,1562510.
Содержание
Общий шаблон для побитового доступа
union { float fl; DWORD dw; } f; int s = ( f.dw >> 31) ? -1 : 1; int e = ( f.dw >> 23) & 0xff; int m = ( e == 0) ? ( f.dw & 0x7fffff) << 1 : ( f.dw & 0x7fffff) | 0x800000; e = (e - 127);
Результирующая формула расчёта будет s * m * 2 ^ e.
Примеры чисел одинарной точности
Эти примеры представлены в шестнадцатеричном виде чисел с плавающей запятой. Они включают знаковый бит, экспоненту и мантиссу.
3f80 0000 = 1 c000 0000 = −2 7f7f ffff ≈ 3.4028234 × 1038 (Максимальное одинарной точности) 0000 0000 = 0 8000 0000 = −0 7f80 0000 = infinity ff80 0000 = −infinity 3eaa aaab ≈ 1/3
По умолчанию, 1/3 округляется вверх, в отличие от чисел двойной точности.
См. также
Ссылки
В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена.
Вы можете отредактировать эту статью, добавив ссылки на авторитетные источники.
Эта отметка установлена 18 июня 2012.Категория:- Арифметика с плавающей запятой
Wikimedia Foundation. 2010.