複合位元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.