Форум Енот

Форум Енот (http://moemnenie.club/index.php)
-   База Знаний (http://moemnenie.club/forumdisplay.php?f=49)
-   -   вопрос наСильникам про тип Float (http://moemnenie.club/showthread.php?t=15952)

SoapMaker 14.07.2009 02:35

вопрос наСильникам про тип Float
 
http://fitoland.ru/images/90613fd087...4eab7777d5.jpg

SoapMaker 14.07.2009 02:38

каким макаром из 0000bc41 получается 23,5 ?

---

SoapMaker 14.07.2009 02:40

из описания Float что нашел в тырнете

1 бит - знак, тут понятно 0 - значит положительное число

следующие 8 бит порядок числа и остальные 23 бита мантисса целая как я понимаю ?

---

так вот, как видно первые 8 бит все 0 значит порядок числа = 0

значит

M*10^0 = M*1

так каким же макаром 23,5 получается ?

АК 15.07.2009 21:47

Мантисы в двоичном виде
 
23,5
"001111000010100011111010"
25
"010000000000000000000000"
28,8
"01001001101110100101111"

Санечка 26.09.2009 01:12

мантиса нормируется к числу от 0,5 до 1
и переводится в двоичное число
полученый порядок тоже двоичный
....................................
ты же все приводишь к десятичному основанию, а это не так.
если хочешь познвть как все делается сходи на васм..там тебе расскажут

erik 03.10.2009 18:47

Так на вскидку вспомнил.

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.


Часовой пояс GMT +3, время: 02:24.

Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot