gpt4 book ai didi

javascript - 为什么 OR 0 在 Javascript 中舍入数字?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:49:27 25 4
gpt4 key购买 nike

我的印象是,根据 IEEE 浮点标准,Javascript 中的 Number 类型可以存储任何数字、整数或 float 。如果是这样,那么为什么要将数字与 0 进行按位或运算将其向下舍入?

尝试使用其他一些位运算,似乎在将位运算应用于 float 时,首先将数字四舍五入为 0,然后应用位运算(数字采用 Two 的补码表示形式,而不是 IEEE)。这是正确的吗?

最佳答案

在 ECMAScript 5.1 中,所有按位运算都会将输入转换为 32 位整数,并返回一个 32 位整数。关于运算符 ^&|section 11.10说:

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.

请注意 ToInt32在应用运算符之前应用到两侧。

关于javascript - 为什么 OR 0 在 Javascript 中舍入数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18219441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com