複合位或
出自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論壇