我尝试用PHP中的某些数学来解密服务器的字节,但我似乎无法使用与Java完全相同的整数。这是一个例子。
echo intval(-690939880 * 134775813);
此当前示例打印出-2092836736。这个值几乎是正确的。但是,在Java中,它会输出我想要的值。
System.out.println(-690939880 * 134775813);
此处输出的值为-2092836744。我怎样才能在PHP中复制这个等式以使其有效?
我希望值溢出,如上所述。
答案 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;
}
?>