我可以问如何找到数字的 32 位版本,因为我想在 JavaScript 中使用按位 AND 运算符处理数字。它表示这些数字在 32 位版本中执行按位运算。
第二个问题是在 JavaScript 按位与运算符(&)中,数字的运算在 32 位版本中执行,对吗?那么最后它会将其转换回 64 位版本吗?
我可以问如何找到数字的 32 位版本,因为我想在 JavaScript 中使用按位 AND 运算符处理数字。它表示这些数字在 32 位版本中执行按位运算。
第二个问题是在 JavaScript 按位与运算符(&)中,数字的运算在 32 位版本中执行,对吗?那么最后它会将其转换回 64 位版本吗?
根据ECMAScript 规范,按位运算的返回值必须是 32 位整数。相关报价:
产生
A : A @ B式@是上述产生式中的位运算符之一,其评估如下:
- 让
lref是评估的结果A。- 让。
lval_GetValue(lref)- 让
rref是评估的结果B。- 让。
rval_GetValue(rref)- 让。
lnum_ToInt32(lval)- 让。
rnum_ToInt32(rval)- 返回将按位运算符
@应用于lnumand的结果rnum。结果是一个带符号的 32 位整数。
因此,要将任何数字转换为 32 位整数,只需执行无效的二进制操作即可。例如,在这里我使用无操作二进制或 ( | 0) 将浮点数转换为整数:
var x = 1.2, y = 1
x = x | 0
alert(x == y) # prints "true"