Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[C] float 08.08.01 12:34
Автор: veshalka Статус: Незарегистрированный пользователь
|
Кто нить может обьяснить какой бит за что отвечает при хранении чисел указанного типа. Вот есть такая описаловка:
Величина с модификатором-типа float занимает 4 байта. Из них 1 бит отводится для знака, 8 бит для избыточной экспоненты и 23 бита для мантиссы. Отметим, что старший бит мантиссы всегда равен 1, поэтому он не заполняется, в связи с этим диапазон значений переменной с плавающей точкой приблизительно равен от 3.14E-38 до 3.14E+38.
Ну, хоть убей не могу понять что такое избыточная экспонента и как формируются эти максимальные значения.
|
 |
[C] float 08.08.01 14:09
Автор: ukv Статус: Незарегистрированный пользователь
|
> Величина с модификатором-типа float занимает 4 байта. Из > них 1 бит отводится для знака, 8 бит для избыточной > экспоненты и 23 бита для мантиссы. Отметим, что старший бит > мантиссы всегда равен 1, поэтому он не заполняется, в связи > с этим диапазон значений переменной с плавающей точкой > приблизительно равен от 3.14E-38 до 3.14E+38.
Что такое избыточная экспонента, объяснить не могу. Но с представлением 4х-байтовых вещественных чисел дело обстоит так.
Знаковый бит - старший (0 = +, 1 = - )
По значениям экспоненты
00000000 = 0.0
00800000 = 1.17549... e-38
01000000 = 2.35... e-38
...
3F800000 = 1.0
40000000 = 2.0
40800000 = 4.0
...
7F000000 = 1.70141... e+38
Особые случаи - экспонента=0 при ненулевой мантиссе (не помню - это называется то ли underflow, то ли денормализованным числом) и экспонента=FF (число 7F800000) - это +бесконечность
По значениям мантиссы
40000000 = 2.0
40400000 = 3.0
40200000 = 2.5
40100000 = 2.25
и дальше в том же духе. Каждый следующий разряд весит вдвое меньше предыдущего.
407FFFFF = 3.99999976...
Минимальное число - 00800000 (см выше), а максимальное - 7F7FFFFF = 3.402...e38
|
|
|