我希望能够匹配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
我希望在64位系统上以32位的方式得到相同的结果,使用值为-951649475,请帮助我,谢谢。抱歉我的英语很差...