加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 打包并解压缩64位整数

发布时间:2020-12-13 18:19:13 所属栏目:PHP教程 来源:网络整理
导读:我有以下代码: $packed = pack('i',PHP_INT_MAX);echo unpack('i',$packed)[1]; 结果我得到-1 我正在使用PHP 5.4.6-1ubuntu1.1(cli)(内置:2012年11月15日01:18:34) 我的PHP_INT_MAx等于9223372036854775807 有没有办法使用pack函数和64位整数? 改为将其保
我有以下代码:
$packed = pack('i',PHP_INT_MAX);
echo unpack('i',$packed)[1];

结果我得到-1

我正在使用PHP 5.4.6-1ubuntu1.1(cli)(内置:2012年11月15日01:18:34)
我的PHP_INT_MAx等于9223372036854775807

有没有办法使用pack函数和64位整数?

改为将其保存为两个32位:
$value = PHP_INT_MAX;
$highMap = 0xffffffff00000000; 
$lowMap = 0x00000000ffffffff; 
$higher = ($value & $highMap) >>32; 
$lower = $value & $lowMap; 
$packed = pack('NN',$higher,$lower); 

list($higher,$lower) = array_values(unpack('N2',$packed)); 
$originalValue = $higher << 32 | $lower;

>算法取自:http://php.net/pack#109328
>示例:http://codepad.viper-7.com/UuLmor

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读