За последние 24 часа нас посетили 22796 программистов и 1278 роботов. Сейчас ищут 784 программиста ...

PHP по байтовая разборка doble

Тема в разделе "PHP для профи", создана пользователем Z_Rinat_Z, 2 июл 2019.

  1. Z_Rinat_Z

    Z_Rinat_Z Новичок

    С нами с:
    2 июл 2019
    Сообщения:
    5
    Симпатии:
    0
    Добрый день.

    Есть необходимость число 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)
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    Не думаю, что это возможно в PHP.
     
  3. Z_Rinat_Z

    Z_Rinat_Z Новичок

    С нами с:
    2 июл 2019
    Сообщения:
    5
    Симпатии:
    0
    В крайнем случае подойдет даже javaScript, но лучше всетаки PHP
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    Оба этих языка не предназначены для побайтового разбора double или чего бы то ни было.
    --- Добавлено ---
    Хотя, может https://www.php.net/manual/en/function.pack.php подойдёт
     
    Z_Rinat_Z нравится это.
  5. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    Начните вопрос с того в рамках какой задачи возникла такая необходимость и какова конечная цель данных манипуляций.
     
  6. Z_Rinat_Z

    Z_Rinat_Z Новичок

    С нами с:
    2 июл 2019
    Сообщения:
    5
    Симпатии:
    0
    Есть прибор который хранит так сказать свой лог(аналог базы данных), у него 2 параметра формата double. вот он туда и пишет свои данные которые в в результате должны перекочевать на хостинг. Все хорошо получается у него все параметры и являются double но проблема в том что есть 1 параметр который записывается также в doule формате но он не является им по факту это дата и время. где double формат раскладывается на ряд битов из которых потом востанвавливается дата и время.
    Дополнительные столбцы формата DATETIME не хочется заводить из за етого параметра т.к. такая хитрая запись появляется 1 на милион. Под виндой все замечательно получается но тут я застрял.

    Как то так.
     
  7. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    acso, Z_Rinat_Z и Chushkin нравится это.
  8. Z_Rinat_Z

    Z_Rinat_Z Новичок

    С нами с:
    2 июл 2019
    Сообщения:
    5
    Симпатии:
    0
    Всем спасибо.