|
|
Изображения | All Albums | Справка | Пользователи | Календарь | Сообщения за день | Поиск |
База Знаний Тематика: технические вопросы, нанотехнологии, инновации Температура кипения: низкая Запас прочности: практический опыт Степень защиты: жесткая модерация |
Опции темы | Поиск в этой теме | Опции просмотра |
14.07.2009, 02:35 | #1 |
Генералиссимус
енот-старожил
|
вопрос наСильникам про тип Float
|
14.07.2009, 02:38 | #2 |
Генералиссимус
енот-старожил
|
каким макаром из 0000bc41 получается 23,5 ?
--- |
14.07.2009, 02:40 | #3 |
Генералиссимус
енот-старожил
|
из описания Float что нашел в тырнете
1 бит - знак, тут понятно 0 - значит положительное число следующие 8 бит порядок числа и остальные 23 бита мантисса целая как я понимаю ? --- так вот, как видно первые 8 бит все 0 значит порядок числа = 0 значит M*10^0 = M*1 так каким же макаром 23,5 получается ? |
15.07.2009, 21:47 | #4 |
Наблюдатель:-)
енот-старожил
|
Мантисы в двоичном виде
23,5
"001111000010100011111010" 25 "010000000000000000000000" 28,8 "01001001101110100101111"
__________________
Я помню....! :-( |
26.09.2009, 01:12 | #5 |
Генералиссимус
енот-старожил
|
мантиса нормируется к числу от 0,5 до 1
и переводится в двоичное число полученый порядок тоже двоичный .................................... ты же все приводишь к десятичному основанию, а это не так. если хочешь познвть как все делается сходи на васм..там тебе расскажут
__________________
еще пока даже не-распяли.. поэтому и воскрешаться не буду... |
03.10.2009, 18:47 | #6 |
Angel Domini
енот-старожил
|
Так на вскидку вспомнил.
typedef union { float f; u_char c[4]; u_int32 u; } data; main() { data d; /* ...... */ printf("floaf %f int 0x%08X char0 %x char1 %x char2 %x char4 %x", d.f, d.u, d.c[0], d.c[1], d.c[2], d.c[3]); } И посмотри чё там выведеца, в цыкле. например от d.f = 0.0 до d.f < 30.0 насколько помню, то ли 0 то ли 1-ца это магическое число 0x2f8. Заметь, что техасовский float это не то же самое что и float intel. |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|