gpt4 book ai didi

kotlin - 在 Kotlin 中,为什么 (-1 ushr 4) 与 -1.ushr(4) 不同?

转载 作者:行者123 更新时间:2023-12-04 01:17:33 27 4
gpt4 key购买 nike

在 Kotlin REPL 和 Kotlin/JVM 中:

  • -1 ushr 4 计算为 268435455
  • -1.ushr(4) 计算为 0

  • 第一个是正确的,因为 -1 是 0xFFFFFFFF,所以 0x0FFFFFFF 是 268435455,但是是什么让第二个不同呢?

    最佳答案

    这取决于运营商的优先级。在第一种情况下,操作被解析为 (-1) ushr 4 ,而在第二种情况下它是 -(1 ushr 4)

    发生这种情况是因为(引用 documentation ):

    Infix function calls have lower precedence than the arithmetic operators, type casts, and the rangeTo operator. The following expressions are equivalent:

    1 shl 2 + 3 and 1 shl (2 + 3)



    虽然方法调用的优先级高于 -

    关于kotlin - 在 Kotlin 中,为什么 (-1 ushr 4) 与 -1.ushr(4) 不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56807862/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com