余生's Blog
余生's Blog
正在加载一言...
php和js位移运算的坑
作者: 余生    时间: 2020-03-22    分类: 实用教程,网络笔记
  • JavaScript默认32位,32位操作系统int类型的最大值是 2147483647,超过该数值会溢出
  • php 64位需要使用pack转化

PHP中pack、unpack的详细用法:https://blog.csdn.net/qq_34908844/article/details/79696135

  • JavaScript运行结果

php和js位移运算的坑

  • PHP运行结果

php和js位移运算的坑
JavaScript

function (t) hash33{
    for (var e = 0, i = 0, n = t . length; i < n; ++i)
        e += (e << 5) + t . charCodeAt(i);
        return 2147483647 & e
}

PHP

function hash33($t){
    for ( $e = 0, $i = 0, $n = strlen($t); $i < $n; ++$i){
        $tmp = $e << 5;
        $tmp = unpack("L",pack("L",$tmp))[1];
        $e += $tmp+  uniord(mb_substr($t,$i,1,'utf-8'));
    }
    return 2147483647 & $e;
}
如果觉得我的文章对你有用,请随意赞赏

支付宝

微信支付

添加新评论

最热文章