【发布时间】:2013-02-25 04:20:37
【问题描述】:
我想在 64 位和 32 位系统中匹配整数的值,这是我的 PHP 脚本示例
function integer_hash_aritmathic ($value)
{
$maxVal = 2147483647 & 0xFFFFFFFF;
$minVal = -2147483648 & 0xFFFFFFFF;
$hash = 0;
for ($i = 0; $i < strlen($value); $i++)
{
$hash = (intval($hash) * 31) + ord($value[$i]);
if ($hash > $maxVal) $hash = $hash + $minVal - $maxVal - 1;
else if ($hash < $minVal) $hash = $hash + $maxVal - $minVal + 1;
}
return (int)$hash;
}
echo integer_hash_aritmathic ('21512510');
32位系统输出: -951649475
64位系统输出: 1283243572029
我希望在 32 位的 64 位系统上获得相同的结果,值为 -951649475,请帮助我...谢谢,对不起,我的英语不好...
【问题讨论】:
-
在 64 位系统上 $minVal 的值是多少?