javascript - PHP 按位异或与 JavaScript 按位异或

标签 javascript php binary bitwise-operators xor

我正在尝试找到一种方法使 PHP 按位异或 结果与 JavaScript 按位异或 的结果相匹配。我遇到了这个问题的不同问题,但都没有答案。以下是其中的一些:

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?

我知道与 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/

相关文章:

php - 警告 : mysql_num_rows(): supplied argument is not a valid MySQL result resource

svn - 为没有特定扩展名的二进制文件更改 Subversion 的默认 MIME 类型?

python - 使用 pyserial 通过串行连接发送二进制数据

c - C中的二进制除法

javascript - 如何循环遍历 Firebase 集合并为每个集合添加独特的颜色?

javascript - 在 react-native 中我们使用 styleSheet.create。我们在reactjs中使用什么?

javascript - 在 D3.js 中使用嵌套数据

javascript - ol.interaction.Draw : write unique text to every single feature drawn

php - WordPress 管理面板缺少样式和脚本

php - php或/和mysql中的多重排序不生效