複合位或
從 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;
|
更多建議和問題歡迎反饋至 YFRobot論壇