如何使BITWISE XOR的PHP版本与JavaScript版本匹配



如何使bitwise xor的PHP版本匹配JavaScript版本?

JavaScript版本给了我1080

(f6o5y5^t0u1)+(p6t0k1^l2v2)+(j0u1f6^d4d4)+(p6t0k1^l2v2)

虽然PHP给了我0000

$a = f6o5y5^t0u1 & 0xffffffff;
if ($a & 0x80000000)
  $a -= 0x100000000;
$b = p6t0k1^l2v2 & 0xffffffff;
if ($b & 0x80000000)
  $b -= 0x100000000;
$c = j0u1f6^d4d4 & 0xffffffff;
if ($c & 0x80000000)
  $c -= 0x100000000;
$d = p6t0k1^l2v2 & 0xffffffff;
if ($d & 0x80000000)
  $d -= 0x100000000;
echo $a.$b.$c.$d;   

语法是相同的,样本中的实现是不同的。例如,以下JavaScript:

var x = (1^2)+(3^4)+(5^6)+(4^8);
console.log(x);

将输出x作为25;

PHP版本相同。例如:

<?=(1^2)+(3^4)+(5^6)+(4^8)?>

也将渲染25

我的猜测是您没有相同的值,或者您的语法在不同的语言中是不同的。

最新更新