“somevar >> 0”是什么意思?

IT技术 javascript operators
2021-02-22 21:20:00


somevar >> 0javascript 中的符号什么意思?

谢谢

3个回答

In a >> b,>>是一个按位运算符,将a二进制表示b(< 32) 位向右移动,丢弃移出的位。参考:https : //developer.mozilla.org/en/JavaScript/Reference/Operators/Bitwise_Operators

按位右移虽然somevar >> 0看起来很奇怪。

@dheerosaur 不一定:34359739705 >> 0 == 1337
2021-04-21 21:20:00
@Gumbo,因为somevar >> 0等于somevar
2021-04-27 21:20:00
不过,这有点令人困惑,因为唯一的数字类型是双精度型。
2021-04-29 21:20:00
@jleedev,哦,谢谢。因此,它将第一个操作数转换为 32 位整数并进行移位。是对的吗?
2021-05-06 21:20:00
@Tomas Narros:有符号右移运算符 ( >>)仅适用于有符号 32 位整数。34359739705 & 0x8FFFFFFF执行So以获得有符号的 32 位整数。并且34359739705 & 0x8FFFFFFF === 1337
2021-05-15 21:20:00

这是一个按位运算符。 在这种情况下,为了以二进制表示将第一个操作数向右移动第二个操作数中指定的位数,丢弃移出的位。

使用0第二个操作数,我猜它没有效果(移位 0 位,得到相同的值?)。

我最后错了。正如@Gumbo 的评论中所解释的那样