当前位置:嗨网首页>书籍在线阅读

14-用法_切换位

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

15.3.5 用法:切换位

切换位指的是打开已关闭的位,或关闭已打开的位。可以使用按位异或运算符( ^ )切换位。也就是说,假设 b 是一个位( 10 ),如果 b1 ,则 1^b0 ;如果 b0 ,则 1^b1 。另外,无论 b1 还是 00^b 均为 b 。因此,如果使用 ^ 组合一个值和一个掩码,将切换该值与 MASK1 的位相对应的位,该值与 MASK0 的位相对应的位不变。要切换 flags 中的1号位,可以使用下面两种方法:

flags = flags ^ MASK;
flags ^= MASK;

例如,假设 flags00001111MASK10110110 。表达式:

flags ^ MASK

即是:

(00001111) ^ (10110110)    // 表达式

其结果为:

(10111001)                // 结果值

flags 中与 MASK1 的位相对应的位都被切换了, MASK0 的位相对应的位不变。