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

4
在JavaScript中,符号somevar >> 0是位运算符,它将数字向右移动零位。这实际上不会改变数字的值,但是可以将其转换为32位有符号整数。希望能对您有所帮助。

1
">>" 是位移运算符,但我不知道为什么要用 0 进行位移(除非有一些我不知道的副作用,否则它将不起任何作用...)" - Reese Moore
3个回答

7

3

有点令人困惑,因为唯一的数字类型是双精度。 - Josh Lee
3
@ Gumbo,因为“somevar >> 0”等同于“somevar”。 - dheerosaur
@dheerosaur 不一定:34359739705 >> 0 == 1337 - Josh Lee
@jleedev:这是怎么回事?我的意思是,如何通过0位移导出不同的值? - Tomas Narros
2
@jleedev,哦,谢谢。 所以,它将第一个操作数转换为32位整数并移位。 是这样吗? - dheerosaur
2
@Tomas Narros:有符号右移位运算符(>>仅适用于有符号32位整数。因此,执行34359739705&0x8FFFFFFF以获取有符号32位整数。而且,34359739705&0x8FFFFFFF === 1337 - Gumbo

1

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

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

我对此最后一点是错误的。如Gumbo的评论所解释的那样。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接