我正在尝试找到一种方法来制作PHP Bitwise XOR
结果与以下结果相符JavaScript Bitwise XOR
。我遇到了这个问题的不同问题,但都没有答案。这里有几个:
Javascript 和 PHP 异或等效项 https://stackoverflow.com/questions/24154381/javascript-php-xor-equivalent
php 按位异或 和 js 按位异或产生不同的结果 https://stackoverflow.com/questions/39234130/php-bitwise-xor-and-js-bitwise-xor-producing-different-results
我知道 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;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)