如何使Bitwise XOR的PHP版本与javascript版本匹配?

时间:2019-03-23 08:56:06

标签: javascript php bit-manipulation xor bitwise-xor

如何使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;   

1 个答案:

答案 0 :(得分:0)

语法相同,示例中的实现不同。例如,以下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

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