复合位或
来自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论坛