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));