php - 如何使用32位系统对数字(1099511627520)求逆时得到正确的结果

标签 php computer-science

当我尝试这个时

~1099511627520

在32位操作系统上,结果为负 不过64位就OK了~ 那么如何让它在32位操作系统上运行呢?

有人可以帮助我吗? 谢谢~

最佳答案

使用 BC Math 函数,您可以在 32 位机器上获得 64 位数字的按位求反,例如:

<?php

define('MAX_UINT_64', '18446744073709551615');

$number_64bit = '1099511627520';

$negate_64bit = bcsub(MAX_UINT_64, $number_64bit, 0);

var_dump($negate_64bit);

?>

它输出:

18446742974197924095

关于php - 如何使用32位系统对数字(1099511627520)求逆时得到正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14996588/

相关文章:

php - 如何将值从 View 传递到模态?

java - 如何检查二叉搜索树是否完全平衡?

algorithm - 每个算法都可以用有限状态机表示吗?

math - 在数据集中查找曲线

php - 在 PHP 上用双引号解析 JSON

php - 如何在不重新加载页面的情况下提交表单

php - MySQL 分组依据 + 顺序

python - 以图形形式表示维基百科

python - 迭代分而治之算法

php - 使用 XMLhttpRequest 加载的页面上的复选框