移位包括有符号左移(<<)、有符号右移(>>)、无符号右移(>>...
移位包括有符号左移(<<)、有符号右移(>>)、无符号右移(>>>),其中 js 支持三种移位,PHP只支持前两种移位(没查到第三种),恰好需要PHP进行无符号右移,
php左移与JS左移结果不一致的原因是JS是32位,但是PHP是64位,因此需要进行转换
$n为值,$m为偏移量
function zy32($n,$m){ return (($n << $m) << 32) >> 32;}
此处实现一下。先看结果
将数字 a向右无符号移动n 位
function uright($a, $n) { $c = 2147483647>>($n-1); return $c&($a>>$n); }