复合位元OR运算 (|=)
描述
复合位元运算 OR 运算子 (|=) 常用在配合常数 ”设置” 变数内特定的位元至 1。
语法
x |= y; // 等同于 x = x | y;
参数
x
: 字元,整数或长整数型别变数。
y
: 字元,整数或长整数型别变数。
范例
首先,复习位元运算子 OR(|)
0 0 1 1 运算子1
0 1 0 1 运算子2
0 1 1 1 (运算子1 | 运算子2) 回传结果
被常数 0 所 OR 的位元将维持原本的值,设 myByte 是个 byte 型别的变数,
myByte | B00000000 = myByte;
被常数 1 所 OR 的位元将被设置为 1:
myByte | B11111111 = B11111111;
若要将变数位元 0 以及位元 1 的值设置为 1 但保持其他位元的值不变。可将变数与常数 B00000011 做 OR 运算。
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 常数遮罩
----------------------
x x x x x x 1 1
未改变的位元
被设置的位元
因此,若 x 为:
myByte = B10101010;
myByte |= B00000011 == B10101011;
See also
- &= (compound bitwise and)
- & (bitwise AND)
- | (bitwise OR)
本页由热血青年 LBU 译自英文版。
The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.