我需要将整数转换为4字节(32位)十六进制,以便将其作为ACK发送到我当前正在尝试集成的设备。
例如
3 = 00000003 15 = 0000000F
检查http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html 1.从下拉列表中选择带符号的32位 2.在decomal文本框中输入值 3.检查十六进制字段中的值。
我正在使用带有此参数的php pack函数,但根据设备的响应,它似乎不是正确的方法。
$reply = pack(L*,$num);
这是正确的参数还是有其他方法。 请suuggest。
答案 0 :(得分:1)
我愿意
$a = 15;
var_dump( sprintf("%08X", $a) );
$a = 3;
var_dump( sprintf("%08X", $a) );
此输出
string(8) "0000000F"
string(8) "00000003
08X
表示使用0
(如果需要)填充8个字符串,并将参数视为十六进制。 (大写字母)
所以在你的例子中
$reply = sprintf("%08X", $num)