如何将64位整数存储为二进制值,我如何读取存储的64位整数?

时间:2014-10-19 18:04:43

标签: php binary integer 64-bit

我想将64位二进制值转换为整数或字符串,反之亦然。

我知道我可以使用pack(" J *",...)和解压缩(" J *",...)来完成我的工作。

但它只适用于php v5.6及更高版本,我的php版本为5.4

现在如何在php v5.4中做到这一点?

1 个答案:

答案 0 :(得分:0)

你可以这样做,将其保存为两个32位值:

$high   = ($value & 0xffffffff00000000) >> 32; 
$low    = $value & 0x00000000ffffffff; 
$packed = pack('NN', $high, $low); 

list($high, $low) = array_values(unpack('N2', $packed)); 
$value            = $high << 32 | $low;