Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Преобразовать 8 байт в double

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Преобразовать 8 байт в double
MAXUS
Отправлено: 06 Июля, 2014 - 12:30:09
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Апр. 2011  


Помог: 7 раз(а)




Доброе время суток.

Считываю файл через поток и разбираю его в соответствии с форматом файла. Все нормально, все получается, но в одном месте втупил и не могу допереть как сделать. Получаю значение длиной 8 байт, которое, согласно формату, является double. А как это полученное значение преобразовать в double-то?

Вот например:


А как это $double в число с плавающей точкой превратить?
 
 Top
caballero
Отправлено: 06 Июля, 2014 - 12:31:54
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




unpack()


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
MAXUS
Отправлено: 07 Июля, 2014 - 06:18:22
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Апр. 2011  


Помог: 7 раз(а)




caballero пишет:
unpack()


Блин, продолжаю тупить... Вот есть hex представление:

406429c28f5c28f6

Получил я его так:



Оно должно быть равно 161.305 А как это получить? Я про unpack читал, пробовал, но откровенно не догоняю. Хотя бы ручками вычислить как? Оно, не оно? Может, порядок обратный?

Добавление
То, что число правильное убедился при помощи калькулятора http://www[dot]floatingpoint[dot]ru/onli[dot][dot][dot]e/double2dec.php . Соответственно, остался вопрос, как это сделать на php.


Вопрос закрыт

unpack('d',strrev(fread($file, 8)));

Строку нужно было перевернуть... Обратный порядок...

(Отредактировано автором: 08 Июля, 2014 - 21:09:10)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с файловой системой и файлами »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB