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

舉例:函數

JS:ui

5>>>2

PHPspa

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

uright(5,2);

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

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;
}

實現思路我也沒大明白 這種東西不經常使用,我是由於在一次爬蟲的時候瞭解的blog

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

相關文章
相關標籤/搜索