如何将 php 中的长数字(字符串)转换为 32 字节缓冲区?

How to convert long number (string) in php to 32 bytes buffer?

我正在尝试转换这个长数字: 7066362913544046959379121391986018585750267357944410108207023200264959783199

到 32 字节缓冲区。

我能够在 python 中使用以下代码执行此操作:

x = "7066362913544046959379121391986018585750267357944410108207023200264959783199"
x_int = int(x)
x_in_bytes = (x_int).to_bytes(32, byteorder='little')

是否可以在 php 中使用相同的方法?

您好,您将使用 intval method and the pack 方法。

代码将如下所示:

<?php

$x = "7066362913544046959379121391986018585750267357944410108207023200264959783199";
$xInt = intval($x);
$xBytes = pack('L', $xInt);

?>

'L' 字符串是格式(unsigned long,总是 32 位,机器字节顺序)。格式字符串由格式代码和一个可选的转发器参数组成。在 docs.

中阅读更多相关信息