PHP 按位异或与 JavaScript 按位异或
PHP Bitwise XOR vs. JavaScript Bitwise XOR
我正在尝试找到一种方法使 PHP Bitwise XOR
结果与 JavaScript Bitwise XOR
的结果匹配。我遇到了这个问题的不同问题,但都没有答案。以下是其中的一些:
Javascript & PHP Xor equivalent
php bitwise XOR and js bitwise XOR producing different results
JS bitwise XOR operator acts differently from PHP’s counterpart. How to get the same result as PHP returns?
我知道 PHP 使用 64 位与 32 位 JavaScript 相比,但我的问题是,是否有任何手动方法来计算相似的结果?怎样才能让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;
我正在尝试找到一种方法使 PHP Bitwise XOR
结果与 JavaScript Bitwise XOR
的结果匹配。我遇到了这个问题的不同问题,但都没有答案。以下是其中的一些:
Javascript & PHP Xor equivalent
php bitwise XOR and js bitwise XOR producing different results
JS bitwise XOR operator acts differently from PHP’s counterpart. How to get the same result as PHP returns?
我知道 PHP 使用 64 位与 32 位 JavaScript 相比,但我的问题是,是否有任何手动方法来计算相似的结果?怎样才能让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;