информационная безопасность
без паники и всерьез
 подробно о проекте
Все любят медГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Хакеры начали эксплуатировать критическую... 
 Критическая уязвимость UEFI позволяет... 
 Японский хостинг попросил клиентов... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[C] float 08.08.01 14:09  Число просмотров: 1159
Автор: 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
<programming>
[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
1





Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach