1. 程式人生 > >記一次PHP實現JS的無符號右移(>>>)

記一次PHP實現JS的無符號右移(>>>)

cti UNC 爬蟲 val 無符號 ret IV 使用 pri

舉例:

JS:

5>>>2

PHP

function uright($a, $n)
{
    $c = 2147483647 >> ($n - 1);
    return $c & ($a >> $n);
}

uright(5,2);

如遇到右移0位可使用以下函數

function uint32val($var) {
    if (is_string($var)) {
        if (PHP_INT_MAX > 2147483647) {
            $var = intval
($var); } else { $var = floatval($var); } } if (!is_int($var)) { $var = intval($var); } if ((0 > $var) || ($var > 4294967295)) { $var &= 4294967295; if (0 > $var) { $var = sprintf(‘%u‘, $var); } }
return $var; }

實現思路我也沒大明白 這種東西不常用,我是因為在一次爬蟲的時候了解的

其他地方也有同樣的,在這裏整理一下。

記一次PHP實現JS的無符號右移(>>>)