什么'int kk = 2 | 3;”意思?

时间:2012-05-18 07:06:37

标签: java syntax operators

我已经在java编程了一段时间,但我没有遇到一个奇怪的表达

int kk = 2 | 3;

'|'是什么这个表达是什么意思?谷歌似乎很难。

我在源代码中遇到了它

i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);

为什么我们需要使用它?

4 个答案:

答案 0 :(得分:8)

它是bitwise or - 如果其中一个或两个输入在该位置设置了位,则将设置每个结果位。 2是二进制10,3是11,所以结果也是3。

答案 1 :(得分:4)

答案 2 :(得分:2)

|是bitwise Operator。在你的情况下,2 | 3将产生3,因为2是10而3是11. 10 | 11 = 11

答案 3 :(得分:1)

您可以查看http://vipan.com/htdocs/bitwisehelp.html 我认为它们是关于位移操作符的非常好的教程