gpt4 book ai didi

PHP 等效的 javascript >>> 使用零填充按位运算符右移?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:57:16 26 4
gpt4 key购买 nike

我可以知道如何使用 PHP >>> 吗?此类运算符在 PHP 中不可用,但在 Javascript 中可用。

我刚发现一个函数如下:

function zeroFill($a, $b) 
{
$z = hexdec(80000000);
if ($z & $a)
{
$a = ($a>>1);
$a &= (~$z);
$a |= 0x40000000;
$a = ($a>>($b-1));
}
else
{
$a = ($a>>$b);
}
return $a;
}

但不幸的是,它并不能完美地工作。

例如:-1149025787 >>> 0Javascript 返回 3145941509PHP zeroFill() 返回 0

最佳答案

/**
* The >>> javascript operator in php x86_64
* Usage: -1149025787 >>> 0 ---> rrr(-1149025787, 0) === 3145941509
* @param int $v
* @param int $n
* @return int
*/
function rrr($v, $n)
{
return ($v & 0xFFFFFFFF) >> ($n & 0x1F);
}

/**
* The >> javascript operator in php x86_64
* @param int $v
* @param int $n
* @return int
*/
function rr($v, $n)
{
return ($v & 0x80000000 ? $v | 0xFFFFFFFF00000000 : $v & 0xFFFFFFFF) >> ($n & 0x1F);
}


/**
* The << javascript operator in php x86_64
* @param int $v
* @param int $n
* @return int
*/
function ll($v, $n)
{
return ($t = ($v & 0xFFFFFFFF) << ($n & 0x1F)) & 0x80000000 ? $t | 0xFFFFFFFF00000000 : $t & 0xFFFFFFFF;
}

好好享受吧。

关于PHP 等效的 javascript >>> 使用零填充按位运算符右移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2642026/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com