【发布时间】:2014-12-21 18:06:59
【问题描述】:
在传入的 UDP 数据包中,我有十六进制值 b70500。这实际上是一个序列号 (1463)。在以相同格式 (b80500) 将其发送回服务器之前,我需要增加此值。
如何在 PHP 中将值加一?
使用建议的代码here 我能够将十六进制值转换为整数并将其加一:
$original_hex = 'b70500'; // 1463
$original_int = unpack("H*", strrev(pack("H*", $original_hex))); // 0005b7
$incremented_int = hexdec($original_int[1]) + 1; // 1464
$incremented_hex = ? // Expected result: b80500
...但我不知道如何将其转换回十六进制。也许有更有效的方法?
【问题讨论】:
-
你使用
unpack获取十进制数,相反的查看pack(php.net/manual/de/function.pack.php)方法。