2016-08-30 2 views
1
내가 PHP와 JS의 비트 XOR 연산을 수행하려고 할 때

, 그들은 어떤 경우에는 다른 결과를 생산을PHP는 비트 XOR 및 JS 비트 XOR 생산 다른 결과

2166136261^101 = -2128831072 on browsers (js) 
2166136261^101 = 2166136224(php) 

나의 이해는 PHP가 있기 때문에 32 비트 js와 반대로 64 비트를 실행합니다.

정확한 원인을 알려주고 해결할 수 있다면 두 연산의 결과가 같은 값이됩니다. 감사!

+1

http://stackoverflow.com/questions/24154381/javascript-php-xor-equivalent –

+0

아무 문제 없습니다. 이것은 다른 결과로 해석되는 것과 동일한 결과입니다. – harold

+0

@harold, Ok, 그렇다면 PHP 결과와 같은 결과를 만드는 방법은 무엇입니까? – Green

답변

-1

2,147,483,647 32 비트 연산에서의 정수의 최대 가능한 양의 값이다 (이것은이다^16 (2), 우리는, 다른 절반은 음수 위해 예약되어있다.이 32 비트의 반)

사용하면 32 비트 시스템에서보다 더 큰 숫자는 컴퓨터가 음수라고 생각할 때 불쾌한 결과를 얻기 시작합니다. https://en.wikipedia.org/wiki/Integer_(computer_science)