如何在php中将整数转换为字节数组


How to convert integer to byte array in php

如何将整数转换为4个字节的数组?

这是我想移植(在C#中)的确切代码

int i = 123456;
byte[] ar = BitConverter.GetBytes(i);
// ar will contain {64, 226, 1, 0}

我如何在PHP中做完全相同的事情?

等效转换为

$i = 123456;
$ar = unpack("C*", pack("L", $i));

在实际操作中查看

不过,您应该知道字节顺序(小/大端序)取决于机器体系结构(BitConverter也是如此)。这可能好,也可能不好。

由于PHP中字节数组的等价物是字符串,因此:

$bytes = pack('L', 123456);

要将其可视化,请使用bin2hex:

echo bin2hex($bytes);
// 40e20100
// (meaning 64, 226, 1, 0)