如何找到32位的数字

时间:2011-06-12 02:36:35

标签: javascript 32-bit bitwise-and

我是否可以询问如何找到32位版本的数字,因为我想在JavaScript中使用按位AND运算符处理数字。它表示这些数字在32位版本中执行按位运算。

第二个问题是它在JavaScript按位AND运算符(&)中,数字的运算以32位版本执行,对吧?然后在最后它将它转换回64位版本?

1 个答案:

答案 0 :(得分:5)

根据the ECMAScript specification,逐位运算的返回值必须是32位整数。相关引用:

  

生产A : A @ B,其中@   中的一个按位运算符   以上作品被评为   如下:

     
      
  1. lref成为评估A的结果。
  2.   
  3. lvalGetValue(lref)
  4.   
  5. rref成为评估B的结果。
  6.   
  7. rvalGetValue(rref)
  8.   
  9. lnumToInt32(lval)
  10.   
  11. rnumToInt32(rval)
  12.   
  13. 返回将按位运算符@应用于lnumrnum的结果。
  14.         

    结果是带符号的32位整数。

因此,要将任何数字转换为32位整数,您只需执行无效的二进制操作即可。例如,在这里我使用no-op二进制或(| 0)将float转换为整数:

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