如何在php中使用covnert hex到dec int32,反之亦然



有人可以提出一种将十六进制转换为dec的最佳方法,反之亦然(相当于下面的powershell命令)?

$hex = "0x80070020"
$hex2dec = [Convert]::ToInt32($hex,16) 
write-host $hex2dec #output: -2147024864
$dec = "-2147024864"
$dec2hex = "0x{0:X}" -f [Int]$hex 
write-host $dec2hex #output: 0x80070020

我尝试了php。

中的遵循方法
echo $val = hexdec(80070020) //returns Int64, need Int32.
echo $val = dechex(-2147024864) //returns ffffffff80070020, can use string replacement but wondering if there is any other best way.

任何建议。

for hex> dec,您可以使用:

$hex = '80070020';
$dec = unpack('l', pack('l', hexdec($hex)))[1];

这将将其放入32位二进制表示中,并按照签名的32bit int。

读取它

您可以简单地将其截断为32位:

$x = hexdec(1234) & 0xFFFFFFFF

如果您需要签署它,则可以简单地从中减去pow(2, 31)

$x -= 0x80000000

相关内容

  • 没有找到相关文章

最新更新