2011-06-12 25 views
2
的32位

我可以問如何找到一個數字的32位版本,因爲我要解決與在JavaScript中按位與運算的數字。它表示,這些數字在32位版本中執行按位操作。如何找到一些

第二個問題是它在JavaScript位AND運算符(&),數字的操作在32位版本執行,對不對?那麼最後它會將它轉換回64位版本嗎?

+0

Mozilla的MDN具有[一些信息(https://developer.mozilla.org/en/docs/網絡/ JavaScript的/參考/運營/ Bitwise_Operators)。 – 2015-12-10 14:51:21

回答

5

the ECMAScript specification,從位運算的返回值必須是32位整數。一個相關的報價:

生產A : A @ B,其中@是在上述 製作按位運算符的 一個,作爲 評價如下:

  1. lref是評估A的結果。
  2. lvalGetValue(lref)
  3. rref是評估B的結果。
  4. rvalGetValue(rref)
  5. lnumToInt32(lval)
  6. rnumToInt32(rval)
  7. 返回施加位運算符@lnumrnum的結果。

結果是一個帶符號的32位整數。

因此任何數字轉換爲32位整數,你可以執行沒有任何作用二元運算。例如,在這裏,我使用無操作二進制或(| 0)浮法轉換爲整數:

var x = 1.2, y = 1 
x = x | 0 
alert(x == y) # prints "true"