gpt4 book ai didi

PHP Left Shift 在两台不同的机器上给出两个答案

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:40:11 25 4
gpt4 key购买 nike

我对 PHP 左移函数的行为感到很困惑。我在两台不同的机器(开发和托管)上使用它,他们给了我不同的答案。我已经追踪到这个计算:

(-3941404251) << 5;

在一台机器上我得到的答案是 -1570884448;另一方面,我得到 0。在两个系统上,PHP_INT_MAX = 2147483647。后者是 32 位系统,第一个是 64 位系统,尽管 php 作为 32 位进程运行并且仍然给出相同的答案。

我只能假设这是 32 位与 64 位的问题,但是否有任何简单的方法来获得所需的行为。如果有人可以向我指出一个函数或其他东西,那就太好了。

谢谢!

最佳答案

第一个值是您问题的正确答案。官方手册说,你不能对大于 max_int 的数字使用按位运算符。因此,请尝试使用 GMP 函数(例如 http://www.php.net/manual/en/function.gmp-and.php)并将数字视为字符串。

关于PHP Left Shift 在两台不同的机器上给出两个答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2305919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com