PHP и HEX

Discussion in 'PHP' started by NAT_uu, 24 Nov 2010.

  1. NAT_uu

    NAT_uu Elder - Старейшина

    Joined:
    31 Dec 2007
    Messages:
    22
    Likes Received:
    1
    Reputations:
    0
    Есть файл надо из него считать [​IMG] данные по 4 байта(выделенны)

    Вывожу данные так:[​IMG]

    так вот почему выводится неправильный порядок первые четыре байта должны 03050000 а выводит:[​IMG] . со следующим всё норм

    Должно в десятичной получиться 1283 и 300

    ИЛИ

    как из тех 4 байт получить десятичное число чтоб получилось 1283
     
  2. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    NAT_uu так все таки что и куда вам нужно переводить? Если из бинарной строки нужно получить числа, то так:
    PHP:
    $str "\x00\x00\x03\x05\x00\x00\x2c\x01\x00\x00\x21\x00\x00\x00\x02\x00";

    $out unpack('V2'substr($str,2,8));

    echo 
    $out[1]."<br />".$out[2];
     
    _________________________
  3. bad_boy

    bad_boy Elder - Старейшина

    Joined:
    30 Dec 2004
    Messages:
    187
    Likes Received:
    33
    Reputations:
    3
    PHP:
    <?php
    $fd 
    fopen("ttt.txt""w+");fwrite($fd,"\x03\x05\x00\x00");fclose($fd);
    $fd fopen("ttt.txt""r");$data fread($fd4);fclose($fd);
    $value ord($data{3}) << 24 ord($data{2}) << 16 ord($data{1}) << ord($data{0});
    echo 
    $value;
    ?>
    Как вариант. Выводит 1283.
     
  4. WNZRS

    WNZRS Member

    Joined:
    3 Sep 2009
    Messages:
    294
    Likes Received:
    52
    Reputations:
    1
    sprintf("%02X", ord($hex));