当前位置: 首页 > 面试题库 >

Java“|=”是什么意思?(pipe equal运算符)

宦树
2023-03-14
问题内容

我尝试使用Google搜索和堆栈溢出进行搜索,但未显示任何结果。我已经在开源库代码中看到了这一点:

Notification notification = new Notification(icon, tickerText, when);
notification.defaults |= Notification.DEFAULT_SOUND;
notification.defaults |= Notification.DEFAULT_VIBRATE;

”| =”(pipe equal operator)是什么意思?


问题答案:

|=的读取方式与相同+=

notification.defaults |= Notification.DEFAULT_SOUND;

是相同的

notification.defaults = notification.defaults | Notification.DEFAULT_SOUND;

|按位或运算符在哪里。

这里引用了所有运算符。

之所以使用按位运算符,是因为这些常量经常使int能够携带标志。

如果你查看这些常数,你会发现它们具有两个幂:

public static final int DEFAULT_SOUND = 1;
public static final int DEFAULT_VIBRATE = 2; // is the same than 1<<1 or 10 in binary
public static final int DEFAULT_LIGHTS = 4; // is the same than 1<<2 or 100 in binary

因此,你可以使用按位或来添加标志

int myFlags = DEFAULT_SOUND | DEFAULT_VIBRATE; // same as 001 | 010, producing 011

所以

myFlags |= DEFAULT_LIGHTS;

只是意味着我们添加了一个标志。

对称地,我们使用&以下命令测试设置的标志:

boolean hasVibrate = (DEFAULT_VIBRATE & myFlags) != 0;


 类似资料:
  • 问题内容: 除了标准,,和运营商; 但什么是这些均值(,,,)? 又如何操作? in返回正常的余数模量,但是仅当,为什么会这样?怎么办? 又如何操作?它有什么作用? 问题答案: :求幂 :异或(按位) :模数 :除以积分结果(舍弃余数)

  • 问题内容: PHP中的“ =&” /“&=”运算符是什么意思?在哪里可以阅读有关它们的信息? 搜索Google没有帮助。 问题答案: 的缩写,是按位与运算符。 分配$ a作为对$ b 的引用。

  • 我正在阅读谷歌Android版的指南,他们有下面的片段。 <代码>是什么!! do in < code > userdao . save(response . body()!!)?

  • 本文向大家介绍双问号(??)运算符在PHP中是什么意思?,包括了双问号(??)运算符在PHP中是什么意思?的使用技巧和注意事项,需要的朋友参考一下 PHP 7添加了新的运算符双问号(??)运算符。在PHP 7中,双问号(??)运算符称为Null合并运算符。 如果它存在且不为NULL,则返回其第一个操作数;否则返回第一个操作数。否则,返回其第二个操作数。从左到右评估。Null合并运算符也可以链形式使

  • 我发现这段代码是为了在SO post中找到重复的代码。但我不明白这行是什么意思