【问题标题】:What does "somevar >> 0" mean?“somevar >> 0”是什么意思?
【发布时间】:2011-05-25 03:26:10
【问题描述】:


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

谢谢

【问题讨论】:

  • >>bitshifting 但我不知道你为什么要位移 0 (除非有一些我不知道的副作用,它不会做任何事情......)跨度>

标签: javascript operators


【解决方案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 所述。

    【讨论】:

      猜你喜欢
      • 2015-03-20
      • 2020-01-07
      • 2018-09-10
      • 2017-05-09
      • 2018-09-25
      • 2010-11-20
      • 1970-01-01
      相关资源
      最近更新 更多