【问题标题】:How to find the 32-bit of a number如何找到一个数字的 32 位
【发布时间】:2011-06-12 02:36:35
【问题描述】:
我想问一下如何找到数字的 32 位版本,因为我想在 JavaScript 中使用按位 AND 运算符处理数字。它表示数字在 32 位版本中执行按位运算。
第二个问题是在 JavaScript 按位与运算符(&)中,数字的运算在 32 位版本中执行,对吗?那么最后它是否将其转换回 64 位版本?
【问题讨论】:
标签:
javascript
32-bit
bitwise-and
【解决方案1】:
根据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 位整数,您只需执行一个无效的二进制操作即可。例如,这里我使用无操作二进制或 (| 0) 将浮点数转换为整数:
var x = 1.2, y = 1
x = x | 0
alert(x == y) # prints "true"