2015-07-10 41 views

回答

2

因爲JavaScript使用32位整數最多,但請記住每個數爲k在這種語言中float的IND

如果你想將它們截斷爲一個無符號32位值:

(3391700000|0) >>> 0 
1

在JavaScript中,位運算符的操作數轉換爲32位簽署整數2的補格式。這就是爲什麼你有一些數據丟失,截斷值有時是負數,因爲有二進制補碼錶示。

你可以參考Why bitwise shift with 0 in JavaScript yields weird results in some cases前一段時間我問過的線程,有些答案指出了你的操作數非常全面超過32位整數的位運算符可能存在的問題。

相關問題