PHP:将十进制转换为二进制

时间:2014-05-29 09:00:17

标签: php binary

我正在尝试将数字101转换为二进制\x00\x65而我不知道如何。

我试过这个:

$decimal = 101;
return bin2hex(pack('S', $decimal));

但结果是6500

这个数字将会改变,当然这必须是动态的。有没有办法转换它?

这必须使用以下代码通过套接字(TCP / IP)发送数据:

$socket = @fsockopen('127.0.01', '8810', $err_no, $err_str);

    if(!$socket){
        exit('Errore #'.$err_no.': '.$err_str);
    }else{
        fwrite($socket, "?B\x00\x65\x00\x01\x00\x01");
        $read = fread($socket, 255);
        return $read;
        fclose($socket);

      //    $decimal = 101;
        // return bin2hex(pack('n', $decimal));
    }

请参阅我发送的fwrite字符串。 以不同方式发送数据不起作用。

2 个答案:

答案 0 :(得分:1)

return bin2hex(pack('n', $decimal));

你只是遇到字节序问题。 'n'用于无符号短(始终为16位,大端字节顺序)

答案 1 :(得分:-2)

使用以下功能

string decbin ( int $number )

此函数将以字符串格式返回二进制数。您需要将十进制数作为参数传递。

为了更好的解释和更多示例,只需go though php official documentation