Шестнадцатеричный XOR с 2 значениями в PHP и JavaScript - PullRequest
0 голосов
/ 19 сентября 2011

Я не могу найти решение для очень простого вопроса.

Код в JavaScript:

var x = -1 ^ 0xF00F9344;

В этом случае значение x равно 267414715

Код в PHP:

$x = -1 ^ 0xF00F9344;

Результат -4027552581

Есть идеи, как получить 267414715 (правильный) результат в PHP?

1 Ответ

4 голосов
/ 19 сентября 2011

Хотя битовые операции JavaScript всегда 32-битные, php зависит от размера слова платформы:

на 32-битной платформе

$n    = "11110000000011111001001101000100"
-1^$n = "00001111111100000110110010111011"  = 267414715

на 64-битной платформе

$n    = "0000000000000000000000000000000011110000000011111001001101000100"
-1^$n = "1111111111111111111111111111111100001111111100000110110010111011" = -4027552581
...