如何将php中的长数字(字符串)转换为32字节缓冲区?
我正在尝试转换此长数字: 706636291354404695937912139198601857502673579444101082070232002649597831199 到32字节缓冲区 我可以使用以下代码在python中实现这一点:如何将php中的长数字(字符串)转换为32字节缓冲区?,php,byte,long-integer,data-conversion,Php,Byte,Long Integer,Data Conversion,我正在尝试转换此长数字: 706636291354404695937912139198601857502673579444101082070232002649597831199 到32字节缓冲区 我可以使用以下代码在python中实现这一点: x = "7066362913544046959379121391986018585750267357944410108207023200264959783199" x_int = int(x) x_in_bytes = (x_int)
x = "7066362913544046959379121391986018585750267357944410108207023200264959783199"
x_int = int(x)
x_in_bytes = (x_int).to_bytes(32, byteorder='little')
在php中也可以这样做吗?您好,您将使用方法和方法 代码如下所示:
<?php
$x = "7066362913544046959379121391986018585750267357944410108207023200264959783199";
$xInt = intval($x);
$xBytes = pack('L', $xInt);
?>
“L”字符串是格式(无符号长,始终为32位,机器字节顺序)。格式字符串由格式代码和可选的转发器参数组成。请在中阅读更多相关信息。谢谢您的回复。
$xInt
的值将与$x
不同,但是由于php的MAX_INT为2^63,$xInt的值将是9223372036854775807。这是正确的,我现在注意到了这一点。您可以省去该行,直接使用pack
方法将$x
转换为字节。