Добрый день. Есть необходимость число double разложить на байты. делал данную задачу на С unsigned char a[8]; double Temp1=123.321; char *U; U=(char *)&Temp1; for(int i=0;i<8;i++) { a=*U; U++; } а вот на PHP не представляю куда смотреть. Пример: число 123,321 (фактически 123,32099999999999) раскладывается на: HEX(DEC) 0х40(64) 0х5E(94) 0хD4(212) 0х8B(139) 0х43(67) 0х95(149) 0х81(129) 0х06(6)
Оба этих языка не предназначены для побайтового разбора double или чего бы то ни было. --- Добавлено --- Хотя, может https://www.php.net/manual/en/function.pack.php подойдёт
Начните вопрос с того в рамках какой задачи возникла такая необходимость и какова конечная цель данных манипуляций.
Есть прибор который хранит так сказать свой лог(аналог базы данных), у него 2 параметра формата double. вот он туда и пишет свои данные которые в в результате должны перекочевать на хостинг. Все хорошо получается у него все параметры и являются double но проблема в том что есть 1 параметр который записывается также в doule формате но он не является им по факту это дата и время. где double формат раскладывается на ряд битов из которых потом востанвавливается дата и время. Дополнительные столбцы формата DATETIME не хочется заводить из за етого параметра т.к. такая хитрая запись появляется 1 на милион. Под виндой все замечательно получается но тут я застрял. Как то так.
@Z_Rinat_Z, переработав пример, предлагаю такой вариант: PHP: $n = 123.321; $arr = unpack("C*", pack("d", $n)); var_dump($n, $arr);