复合位或

来自Labplus盛思维基百科
Tangliufeng讨论 | 贡献2018年3月29日 (四) 12:11的版本 (创建页面,内容为“*'''<big>描述</big>''' 复合按位或操作符(| =)经常用于变量和常量“设置”(设置为1),尤其是变量中的某一位。 *'''<big>语…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索
  • 描述

复合按位或操作符(| =)经常用于变量和常量“设置”(设置为1),尤其是变量中的某一位。

  • 语法

x |= y; //等价于 x = x | y;


  • 参数

x: char,int 或long 类型

y:整数,int 或long 类型

  • 例如
首先,回顾一下OR(|)运算符
0 0 1 1 运算元1
0 1 0 1 运算元2
----------
0 1 1 1(运算元1 | 运算元2) - 返回的结果
如果变量myByte 中某一位与0 经过按位或运算后不变。
myByte | B00000000 = myByte;
与1 经过或运算的位将变为1.
myByte | B11111111 B11111111;
因此 - 设置变量的某些位为0 和1,而变量的其他位不变,可与常量B00000011 进行
按位与运算(| =)
1 0 1 0 1 0 1 0 变量
0 0 0 0 0 0 1 1
----------------------
1 0 1 0 1 0 1 1
变量保持不变位设置
接下来的操作相同,只是将变量用x 代替
X X X X X X X X 变量
0 0 0 0 0 0 1 1 mask
----------------------
X X X X X X 1 1
变量保持不变位设置
同上:
myByte = B10101010;
myByte | = B00000011 == B10101011;