【问题标题】:What does "|=" mean in Java?Java中的“|=”是什么意思?
【发布时间】:2010-08-06 04:05:51
【问题描述】:

注意我的问题不是关于!=,而是|=

一个用法示例是here

我假设 x |= yx = x | y 相同,但我找不到确认文档并想确定

谢谢

【问题讨论】:

    标签: java bit-manipulation bitwise-operators


    【解决方案1】:

    这是一个按位“或”加赋值,所以你的假设是完全正确的。

    【讨论】:

      【解决方案2】:

      是的,它是按位包含或赋值:http://www.cafeaulait.org/course/week2/03.html

      【讨论】:

        【解决方案3】:

        更准确地说,x |= y 实际上计算为 x = x | (y)。

        这是一个有趣的例子,说明为什么这很重要。

        int c = 2;
        c %= c++ * ++c;
        

        这里有趣的结果是它会写成

        c = c % (c++ * ++c);
        

        Java 规范告诉我们,JVM 会首先看到初始的 c 并将其存储,在它之前的任何内容都不会对其产生影响,因此 c++ & ++c 实际上不会影响计算的结果。它总是 c = 2 % 等于 2 :)

        【讨论】:

          【解决方案4】:

          【讨论】:

          • 谢谢,很高兴有一个规范文件
          猜你喜欢
          • 2012-08-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-01-09
          • 1970-01-01
          • 2018-05-29
          • 2017-09-03
          相关资源
          最近更新 更多