在Java中,管道字符是否意味着比按位OR更多?

时间:2015-08-01 02:07:52

标签: java android bit-manipulation bitwise-operators

我看到很多类似于以下的构造(在android中,因为我在Java中主要使用android)

final WindowManager.LayoutParams paramsWM
...
paramsWM.gravity = Gravity.TOP|Gravity.LEFT;

那么它只是简单地采用两个值的按位OR,还是有更多的东西比眼睛满足?如果它只是按位OR,那么在上面我会以

结束
//think math, not java for syntax below
paramsWM.gravity = Gravity.TOP|Gravity.LEFT = 48|3=51;

同样,如果它只是按位,只有当我知道收件人(即paramsWM.gravity)可以处理添加时,才允许使用此快捷方式:对吗?此外,我可以同样写作

//this is java again
final WindowManager.LayoutParams paramsWM
...
paramsWM.gravity = Gravity.TOP + Gravity.LEFT;

1 个答案:

答案 0 :(得分:0)

管道字符只需按位OR,仅此而已。

这是所有按位运算符的一个很好的例子: http://www.tutorialspoint.com/java/java_bitwise_operators_examples.htm

编辑:正如评论中用户PM 77-1所述,如果你不想短路,它也会用在bool表达式中