Bre*_*don 5 php 64-bit 32-bit bit-manipulation bit-shift
我对PHP左移功能的行为非常困惑.我在两台不同的机器上使用它(开发和托管),他们给了我不同的答案.我已经跟踪到了这个计算:
(-3941404251) << 5;
在一台机器上我得到答案-1570884448; 另一方面,我得到0.在两个系统上,PHP_INT_MAX = 2147483647.后者是一个32位系统,第一个是64位,虽然php作为一个32位进程运行,仍然给出相同的答案.
我只能假设这是32位与64位的问题,但有任何简单的方法来获得所需的行为.如果有人能指出我的功能或其他什么,那就太好了.
谢谢!
小智 2
第一个值是您问题的正确答案。官方手册说,不能对大于 max_int 的数字使用按位运算符。因此,请尝试使用 GMP 函数(例如http://www.php.net/manual/en/function.gmp-and.php)并将数字视为字符串。
| 归档时间: |
|
| 查看次数: |
808 次 |
| 最近记录: |