我正在尝试将数字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
字符串。以不同的方式发送数据不起作用
return bin2hex(pack('n', $decimal));
您只是有一个端序问题。'n'
表示unsigned short(总是16位,大端字节顺序)。
使用下列函数
string decbin ( int $number )
这个函数将返回字符串格式的二进制数。您需要传递十进制数作为参数。
要获得更好的解释和更多示例,请查看php官方文档