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

PHP:将十进制转换为二进制,php,binary,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){ exi

我正在尝试将数字
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
字符串。
以不同方式发送数据无效。

使用以下功能

string decbin ( int $number )
此函数将以字符串格式返回二进制数。您需要传递十进制数作为参数

为了更好的解释和更多的例子,请


你只是有一个endianness的问题<代码>'n'表示无符号短字符(始终为16位,大端字节顺序)。

Tks。返回
0065
哪个更好!如何将其转换为
\x00\x65
?Tks很多。您需要字面上的“\x00\x65”吗?还是需要可读十六进制表示为“\x00\x65”的二进制blob?如果是后者,为什么?您不需要“\x…”。您需要一个二进制字符串。在PHP字符串文本中写入
“\x00\x65”
将得到一个二进制字符串。您需要的是
pack('n',101)
,它将为您提供相同的二进制字符串。您是对的!:D Tks
return bin2hex(pack('n', $decimal));