如何找到32位的数字

dra*_*sea 2 javascript 32-bit bitwise-and

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

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

小智 5

根据ECMAScript规范,逐位运算的返回值必须是32位整数.相关报价:

生产A : A @ B,其中@是上述产品中的一个按位运算符,评估如下:

  1. 让我们lref评估的结果A.
  2. 我们lvalGetValue(lref).
  3. 让我们rref评估的结果B.
  4. 我们rvalGetValue(rref).
  5. 我们lnumToInt32(lval).
  6. 我们rnumToInt32(rval).
  7. 返回将按位运算符@应用于lnum和的结果rnum.

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

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

var x = 1.2, y = 1
x = x | 0
alert(x == y) # prints "true"
Run Code Online (Sandbox Code Playgroud)