爲什麼一個正數按位或操作0不總是在Javascript爲什麼正數按位或操作0並不總是積極的Javascript
例如正:
3391700000|0
-903267296
4260919000|0
-34048296
2884900000|0
-1410067296
我使用的是鍍鉻在Linux上
64位有關:https://stackoverflow.com/a/12837315/1620210
爲什麼一個正數按位或操作0不總是在Javascript爲什麼正數按位或操作0並不總是積極的Javascript
例如正:
3391700000|0
-903267296
4260919000|0
-34048296
2884900000|0
-1410067296
我使用的是鍍鉻在Linux上
64位有關:https://stackoverflow.com/a/12837315/1620210
因爲JavaScript使用32位整數最多,但請記住每個數爲k在這種語言中float的IND
如果你想將它們截斷爲一個無符號32位值:
(3391700000|0) >>> 0
在JavaScript中,位運算符的操作數轉換爲32位簽署整數2的補格式。這就是爲什麼你有一些數據丟失,截斷值有時是負數,因爲有二進制補碼錶示。
你可以參考Why bitwise shift with 0 in JavaScript yields weird results in some cases前一段時間我問過的線程,有些答案指出了你的操作數非常全面超過32位整數的位運算符可能存在的問題。
只是一個快速猜測:整數溢出? – Burki
這是正確的T__T) – Kokizzu
現在我應該改變我所有的代碼庫 – Kokizzu