Я пытаюсь найти способ сделать 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);
Маска для подписанного Int.
$c = ($a ^ $b) & 0xffffffff;
if ($c & 0x80000000)
$c -= 0x100000000;
echo $c;
Других решений пока нет …