【问题标题】: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,其中@ 是 中的位运算符之一 上面的产品,被评估为 如下:

  1. lref 成为评估A 的结果。
  2. lval 成为GetValue(lref)
  3. rref 成为评估B 的结果。
  4. rval 成为GetValue(rref)
  5. lnum 成为ToInt32(lval)
  6. rnum 成为ToInt32(rval)
  7. 返回将按位运算符@ 应用于lnumrnum 的结果。

结果是一个有符号的 32 位整数。

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

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

【讨论】:

    猜你喜欢
    • 2019-05-17
    • 1970-01-01
    • 2022-11-29
    • 1970-01-01
    • 2016-09-14
    • 2020-02-14
    • 2016-05-27
    • 2020-07-24
    • 2015-07-07
    相关资源
    最近更新 更多