如何找到一个数的32位

发布于 2024-11-14 22:43:46 字数 161 浏览 2 评论 0原文

我想问一下如何找到数字的 32 位版本,因为我想在 JavaScript 中使用按位 AND 运算符来处理数字。它指出数字在 32 位版本中执行按位运算。

第二个问题是JavaScript中的按位与运算符(&),数字的运算在32位版本中执行,对吗?那么最后它是否将其转换回64位版本?

Can I ask how to find the 32-bit version of a number as I want to work around with numbers with the bitwise AND operator in JavaScript. It stated that the numbers perform bitwise operations in 32bit version.

Second question is it in JavaScript bitwise AND operator(&), the operation of numbers perform in 32-bit version, right? Then at the end does it convert it back to 64-bit version?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

负佳期 2024-11-21 22:43:46

根据 ECMAScript 规范,按位运算的返回值必须是 32 位整数。相关引用:

产生式A : A @ B,其中@
位运算符之一
上述产品,被评估为
如下:

  1. lref 为计算A 的结果。
  2. lvalGetValue(lref)
  3. rref为计算B的结果。
  4. rvalGetValue(rref)
  5. lnumToInt32(lval)
  6. rnumToInt32(rval)
  7. 返回将按位运算符@应用于lnumrnum的结果。

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

因此,要将任何数字转换为 32 位整数,您只需执行不会产生任何效果的二进制运算。例如,这里我使用无操作二进制文件或 (| 0) 将浮点数转换为整数:

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

According to the ECMAScript specification, the return values from bitwise operations must be 32-bit integers. A relevant quote:

The production A : A @ B, where @ is
one of the bitwise operators in the
productions above, is evaluated as
follows:

  1. Let lref be the result of evaluating A.
  2. Let lval be GetValue(lref).
  3. Let rref be the result of evaluating B.
  4. Let rval be GetValue(rref).
  5. Let lnum be ToInt32(lval).
  6. Let rnum be ToInt32(rval).
  7. Return the result of applying the bitwise operator @ to lnum and rnum.

The result is a signed 32 bit integer.

Therefore to convert any number to a 32-bit integer, you can just perform a binary operation that would have no effect. For example, here I convert a float to an integer using a no-op binary or (| 0):

var x = 1.2, y = 1
x = x | 0
alert(x == y) # prints "true"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文