我想将64位二进制值转换为整数或字符串,反之亦然。
我知道我可以使用pack(" J *",...)和解压缩(" J *",...)来完成我的工作。
但它只适用于php v5.6及更高版本,我的php版本为5.4
现在如何在php v5.4中做到这一点?
答案 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;