PHP使用双打而不是浮点数

时间:2014-09-12 03:16:09

标签: java php

我尝试用PHP中的某些数学来解密服务器的字节,但我似乎无法使用与Java完全相同的整数。这是一个例子。

echo intval(-690939880 * 134775813);

此当前示例打印出-2092836736。这个值几乎是正确的。但是,在Java中,它会输出我想要的值。

System.out.println(-690939880 * 134775813);

此处输出的值为-2092836744。我怎样才能在PHP中复制这个等式以使其有效?

我希望值溢出,如上所述。

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。花了几个小时搜索,但我在StackOverflow上找到了解决方案。

<?php
echo int32Val(-690939880 * 134775813);
//outputs -2092836744

function int32Val($value) {
    if ($value < -2147483648)
        return -(-($value) & 0xffffffff);
    elseif ($value > 2147483647)
        return ($value & 0xffffffff);
    return $value;
}
?>

答案:Force PHP integer overflow