複合位或

出自YFRobotwiki
跳轉到: 導覽搜尋


描述

複合位與(&=)經常被用來設置變量或者常量的某一位為0。代碼中,常被用作"清零"或者"重置"變量的某位。 複合位或操作符(| =)經常用於變量和常量“設置”(設置為1),尤其是變量中的某一位。


語法

x |= y;       // 相当于 x = x | y; 


參數

x: 字符型,整型,長整型變量

y: 字符型,整型,長整型常量


示例

先來看下按位或(|)的用法

   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    variable
   0  0  0  0  0  0  1  1    mask
   ----------------------
   x  x  x  x  x  x  1  1
  没有发生变化的位数
                     位设置

同理

myByte =  B10101010;

myByte |= B00000011 == B10101011;



擴展閱讀

- &=(複合位與)
- &(位與)
- |(位或)




返回Arduino語法參考列表

更多建議和問題歡迎反饋至 YFRobot論壇