“somevar >> 0”是啥意思?
Posted
技术标签:
【中文标题】“somevar >> 0”是啥意思?【英文标题】:What does "somevar >> 0" mean?“somevar >> 0”是什么意思? 【发布时间】:2011-05-25 03:26:10 【问题描述】:
javascript中somevar >> 0
的符号是什么意思?
谢谢
【问题讨论】:
>>
是 bitshifting 但我不知道你为什么要位移 0 (除非有一些我不知道的副作用,它不会做任何事情......)跨度>
【参考方案1】:
在a >> b
中,>>
是一个按位运算符,它将二进制表示中的a
向右移动b
(https://developer.mozilla.org/en/JavaScript/Reference/Operators/Bitwise_Operators
【讨论】:
【参考方案2】:Bitwise right shift。虽然somevar >> 0
看起来很奇怪。
【讨论】:
这有点令人困惑,因为唯一的数字类型是双精度数。 @Gumbo,因为somevar >> 0
等于somevar
@dheerosaur 不一定:34359739705 >> 0 == 1337
.
@jleedev,哦,谢谢。因此,它将第一个操作数转换为 32 位整数并进行移位。对吗?
@Tomas Narros:Signed Right Shift Operator (>>
) 仅用于有符号的 32 位整数。所以执行34359739705 & 0x8FFFFFFF
得到一个有符号的32 位整数。还有34359739705 & 0x8FFFFFFF === 1337
。【参考方案3】:
这是一个bitwise operator. 在这种情况下,为了以二进制表示形式移动第一个操作数,向右移动第二个操作数中指定的位数,丢弃移位的位。
用0
作为第二个操作数,我猜它没有效果(移位0位,得到相同的值?)。
我最后错了。如this @Gumbo's comment 所述。
【讨论】:
以上是关于“somevar >> 0”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章
“内容”是啥意思:在招摇/openapi“响应”中是啥意思: