【发布时间】:2012-05-19 12:34:42
【问题描述】:
我在 Android SDK 文档中找到了以下示例代码:
boolean retValue = false;
retValue |= mActionBarHelper.onCreateOptionsMenu(menu);
retValue |= super.onCreateOptionsMenu(menu);
谁能给我看等效的代码来演示它的作用?
注意:我假设方法调用返回一个布尔值,所以我想看一个例子,它看起来像一个 if-else 构造。
【问题讨论】:
-
@GregKopff:它是按位或,而不是逻辑或。
-
@Makoto:我认为布尔数据类型没有定义的位表示。
-
@GregKopff:按位或意味着您要使用两组位,并且当且仅当同一位置的位设置为高时,才将这些位设置为高。示例:1001 | 0110 = 1111。Check Wikipedia for more info.
-
@Makoto:很好理解——对于具有定义位表示的字节、字符、短裤、整数和长整数,这是有道理的。当然,布尔值可以被认为是 1 位(该语言使用一个字节来存储它),但它不像其他数据类型那样具有位表示。您不能将布尔值转换为字节并获取 0x00 / 0x01 。是的,按位运算很容易在单个位上进行概念化 - 但由于上述原因,我对此感到“惊讶”。
标签: java android bitwise-operators