“| =”在Java中意味着什么?

时间:2010-08-06 04:05:52

标签: java bit-manipulation bitwise-operators

请注意,我的问题不在于!=,而在于|=

用法示例为here

我认为x |= yx = x | y相同,但我找不到确认文档并希望确定

由于

4 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:4)

是的,这是一个包含性或分配:http://www.cafeaulait.org/course/week2/03.html

答案 2 :(得分:3)

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

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

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

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

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

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

答案 3 :(得分:2)