如何使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
。
我的猜测是您没有相同的值,或者您的语法在不同的语言中是不同的。