我是否可以询问如何找到32位版本的数字,因为我想在JavaScript中使用按位AND运算符处理数字。它表示这些数字在32位版本中执行按位运算。
第二个问题是它在JavaScript按位AND运算符(&)中,数字的运算以32位版本执行,对吧?然后在最后它将它转换回64位版本?
答案 0 :(得分:5)
根据the ECMAScript specification,逐位运算的返回值必须是32位整数。相关引用:
生产
A : A @ B
,其中@
中的一个按位运算符 以上作品被评为 如下:
- 让
lref
成为评估A
的结果。- 让
lval
为GetValue(lref)
。- 让
rref
成为评估B
的结果。- 让
rval
为GetValue(rref)
。- 让
lnum
为ToInt32(lval)
。- 让
rnum
为ToInt32(rval)
。- 返回将按位运算符
醇>@
应用于lnum
和rnum
的结果。结果是带符号的32位整数。
因此,要将任何数字转换为32位整数,您只需执行无效的二进制操作即可。例如,在这里我使用no-op二进制或(| 0
)将float转换为整数:
var x = 1.2, y = 1
x = x | 0
alert(x == y) # prints "true"