PHP побитовый XOR против JavaScript побитовый XOR

Я пытаюсь найти способ сделать PHP Bitwise XOR результаты соответствуют результатам JavaScript Bitwise XOR, Я сталкивался с разными вопросами этой проблемы, и все без ответов. Вот несколько из них:

Javascript & PHP Xor эквивалент

php побитовый XOR и js побитовый XOR, производящий разные результаты

JS побитовый оператор XOR действует иначе, чем аналог PHP. Как получить тот же результат, что и PHP?

Я знаю, что PHP использует 64-битный по сравнению с 32-битным JavaScript, но мой вопрос, есть ли ручной способ подсчета аналогичных результатов? Как мы можем заставить PHP получить результаты, аналогичные JS?

Если числа короткие, результаты всегда будут одинаковыми в JS и PHP. Однако, если числа длинные, проблема возникает. Пример:

var a = 234324234232;
var b = 221312312232;
console.log(a^b);

1

Решение

Маска для подписанного Int.

$c = ($a ^ $b) & 0xffffffff;
if ($c & 0x80000000)
$c -= 0x100000000;
echo $c;
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector