>>Как из 4-х байт, составляющих число типа double, получить это число?
>>
>>Пример:
>>unsigned char tmp[4]={63,128,0,0}; // значение double=1.0
Хранение железкой int и double / float совершенно разные вещи. Кроме того, и то не везде (!!!), среди битов double / float значения НЕТ "точки" по определению. На SPARC они представлены на уровне регистров одинаково, а различаются на уровне кода библиотек языков - на уровне представления. Короче - если это ++ можно через strstream вывернуться, в K&R/AT&T есть старый добрый sprintf. Далее с char* можно делать все что угодно.
Разбирать же регистровые представления форматов "с точкой" - точно непортируемо получится - раз, и гемор редкий - два.
>
>Прежде, чем плодить непортируемые решения посмотри sizeof(double).
Это ничего не даст, кроме того, что он откроет для себя платформенную зависимость. :)
|