2016-08-30 150 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)