Решено: преобразование

Модератор: Модераторы разделов

Аватара пользователя
nuclear17
Сообщения: 117
ОС: linux/mac/win

Решено: преобразование

Сообщение nuclear17 »

как можно преобразовать бинарную последовательность в double?
пробую преобразовывать 3F F0 00 00 00 00 00 00
по этой формуле
Изображение
S - бит числа S=0 - положительное число; S=1 - отрицательное число
E - смещенная экспонента;
M - остаток мантиссы двоичного нормализованного числа с плавающей точкой

3F F0 00 00 00 00 00 00 = 0011 1111 1111 0000 ... 0000
E=0111 1111 1110 = 0х7FE = 2046
M= 0
F=(-1)^0 *2^(2046-1023)*(1+0)

в итоге получается 2^1023 что явно не равно единице, которая по идее там должна быть
Спасибо сказали:
Аватара пользователя
SergeyIT
Сообщения: 82
ОС: xUbuntu, MXlinux

Re: Решено: преобразование

Сообщение SergeyIT »

3F F0 00 00 00 00 00 00 = 0011 1111 1111 0000 ... 0000
E=(0)011 1111 1111 = 0х3FF = 1023 вот так!
(0) - знак числа
M= 0
F=(-1)^0 *2^(1023-1023)*(1+0) == 1
Извините, я все еще учусь
Спасибо сказали:
Аватара пользователя
nuclear17
Сообщения: 117
ОС: linux/mac/win

Re: Решено: преобразование

Сообщение nuclear17 »

спасибо большое
Спасибо сказали:
Аватара пользователя
nuclear17
Сообщения: 117
ОС: linux/mac/win

Re: Решено: преобразование

Сообщение nuclear17 »

при преобразовании мантиса занимает больше 4 байтов (да и 2^52 8 байт займет) . что с этим можно сделать?
Спасибо сказали:
Аватара пользователя
SergeyIT
Сообщения: 82
ОС: xUbuntu, MXlinux

Re: Решено: преобразование

Сообщение SergeyIT »

nuclear17 писал(а):
09.11.2009 18:50
при преобразовании мантиса занимает больше 4 байтов (да и 2^52 8 байт займет) . что с этим можно сделать?

Не понял. На каком языке пишите?
Для С это будет так
union Tdata
{ double db;
unsigned char b[8];
} d;
//для 40 76 d0 00 00 00 00 00 = 1 января 1901
d.b[7] = 0x40;
d.b[6] = 0x76;
d.b[5] = 0xd0;
d.b[4] = 0x0;
d.b[3] = 0x0;
d.b[2] = 0x0;
d.b[1] = 0x0;
d.b[0] = 0x0;
//величина в double d.db будет равна 365.0;
Извините, я все еще учусь
Спасибо сказали:
Аватара пользователя
nuclear17
Сообщения: 117
ОС: linux/mac/win

Re: Решено: преобразование

Сообщение nuclear17 »

спасибо еще раз
Спасибо сказали:
Аватара пользователя
SergeyIT
Сообщения: 82
ОС: xUbuntu, MXlinux

Re: Решено: преобразование

Сообщение SergeyIT »

nuclear17 писал(а):
09.11.2009 21:20
спасибо еще раз

Учите матчасть, уж коли влезли в это.
Извините, я все еще учусь
Спасибо сказали: