我有这个循环:
$encoded = '';
while ($number) {
$encoded = chr($number & 0xFF) . $encoded;
$number = $number >> 8;
}
return $encoded;
我想知道是否有相应的pack
或unpack
。
答案 0 :(得分:3)
您将此编码为big-endian表示(首先表示最重要的字节),但宽度可变。
所以要得到字节:
pack("N", $number)
您也可以使用64位J
。
但是你还需要修剪前导空字节(对于可变宽度):
ltrim(pack("N", $number), chr(0))