这里会显示出您选择的修订版和当前版本之间的差别。
前一修订版 | |||
— | reference:language:bitwisecompoundor [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1 | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== compound bitwise OR (|=) ====== | ||
+ | |||
+ | ===== 描述 ===== | ||
+ | |||
+ | 复合操作符(| =)经常用于变量和常量“设置”(设置为1),尤其是变量中的某一位。 | ||
+ | ===== 语法 ===== | ||
+ | < | ||
+ | x |= y; // | ||
+ | </ | ||
+ | ===== 参数 ===== | ||
+ | |||
+ | x: char,int或long类型 | ||
+ | |||
+ | y: 整数,字符或长整型常量 | ||
+ | ===== 例如 ===== | ||
+ | |||
+ | 首先,回顾一下OR(|)运算符 | ||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | 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变量 | ||
+ | 0 0 0 0 0 0 1 1 mask | ||
+ | ---------------------- | ||
+ | X X X X X X 1 1 | ||
+ | </ | ||
+ | 变量保持不变 | ||
+ | 位设置 | ||
+ | |||
+ | 同上: | ||
+ | < | ||
+ | myByte = B10101010; | ||
+ | |||
+ | myByte | = B00000011 == B10101011; | ||
+ | </ | ||
+ | |||