2016-08-30 35 views
1

当我尝试执行PHP和JS按位异或运算,他们生产在某些情况下不同的结果,例如PHP按位异或和js按位异或产生不同的结果

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

我的理解是,因为PHP是运行64位而不是32位js。

任何人都可以告诉我确切的原因,如果这可以解决,使两个操作导致相同的价值。谢谢!

+1

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

+0

没有问题。这是相同的结果,只是解释不同而已。 – harold

+0

@harold,好的,那么如何让相同的结果看起来像PHP的结果? – Green

回答

-1

2,147,483,647是在32位计算的整数最大可能正值,(这是2的16次方,32位,我们有,另一半保留负数。的一半)

一旦你开始使用一个比32位系统更大的数字,你开始变得棘手的结果,因为电脑认为它是一个负数。见https://en.wikipedia.org/wiki/Integer_(computer_science)