【问题标题】:What does ' >>> ' mean in javascript? [duplicate]'>>>'在javascript中是什么意思? [复制]
【发布时间】:2011-04-13 15:55:08
【问题描述】:

我有一段我想要理解的 javascript 代码

return ( n >>> 0 ) * 2.34e10;

那么>>>是什么意思?

提前感谢...这是我关于 SO 的第一个问题

【问题讨论】:

    标签: javascript


    【解决方案1】:

    这是一个zero-fill right shift。这不会对正整数或 0 做任何事情,但它会对负数做一些有趣的事情(因为 most significant bit changes to zero)。

     2 >>> 0 === 2
     1 >>> 0 === 1
     0 >>> 0 === 0
    -1 >>> 0 === 4294967295
    -2 >>> 0 === 4294967294
    -3 >>> 0 === 4294967293
    

    应该注意(感谢 Andy!)在 JavaScript converts the arguments to signed 32-bit integers 中进行移位之前进行移位。因此>>> 0 本质上是对正数执行Math.floor

    1.1 >>> 0 === 1
    1.9 >>> 0 === 1
    

    【讨论】:

    • 我想 +1,但我觉得有必要先进行一个小编辑 ;-) 如果你愿意,你还可以扩展它对正浮点数的作用:-)
    • @Andy 非常感谢,也很好。
    • 太棒了!!...非常感谢 Skilldrick、Andy E 和 acqu13sce。也感谢您的参考。
    • 这个操作实际上是JavaScript中唯一无符号的按位操作
    • >>> 是无符号右移,>> 是有符号右移。前者使用 ToUint32 转换 RHS,这就是所谓的。
    【解决方案2】:

    这是一个位运算符。这意味着将 n 移动 0 位。不确定它在您显示的实例中尝试做什么。

    a >>> b  // shift a by b bits to the right, padding with zeros
    

    【讨论】:

    • (a >>> 0) 用于将 a 强制转换为 32 位无符号整数。
    猜你喜欢
    • 2015-07-15
    • 2018-07-17
    • 2011-04-16
    • 2014-07-28
    • 2015-04-17
    • 2018-02-26
    • 2017-06-11
    • 2017-01-31
    • 2013-06-28
    相关资源
    最近更新 更多