我正在尝试找到一种方法使 PHP 按位异或
结果与 JavaScript 按位异或
的结果相匹配。我遇到了这个问题的不同问题,但都没有答案。以下是其中的一些:
Javascript & PHP Xor equivalent
php bitwise XOR and js bitwise XOR producing different results
我知道与 32 位 JavaScript 相比,PHP 使用 64 位,但我的问题是,是否有任何手动方法来计算相似结果?如何让 PHP 得到与 JS 相似的结果?
如果数字很短,在 JS 和 PHP 中结果总是相同的,但是,如果数字很长,就会出现问题。示例:
var a = 234324234232;
var b = 221312312232;
console.log(a^b);
JS 输出:
166587472
PHP 代码:
$a = 234324234232;
$b = 221312312232;
echo $a^$b;
PHP 输出:
21641423952
有时 JavaScript 会给出负面结果:
var a = 202338273;
var b = 523511134400;
console.log(a^b);
JS 输出
-272722143
PHP 代码:
$a = 202338273;
$b = 523511134400;
echo $a^$b;
PHP 输出:
523713287969
最佳答案
掩码为有符号整数。
$c = ($a ^ $b) & 0xffffffff;
if ($c & 0x80000000)
$c -= 0x100000000;
echo $c;
关于javascript - PHP 按位异或与 JavaScript 按位异或,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51344521/