2014-02-19 48 views
3

位運算測試結果的差異,我寫了一個簡單的函數:在Javascript中

function test() { 
    var val = -1878897367 & 0xfffffff0; 
    console.log(val); 
    val = -2146277048 & 0xfffffff0; 
    console.log(val); 
} 

在臺式計算機上運行的結果:

-1878897376 
-2146277056 

上運行的結果電話(Android 4.2或2.3.4上的Phonegap):

268586281 
1206600 

爲什麼會發生這種情況?

回答

0

我相信背後的原因是不同種類的位操作系統。按位運算符使用32位整數。按位操作的結果會根據操作系統中使用的位而不同。