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

15-用法_检查位的值

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

15.3.6 用法:检查位的值

前面介绍了如何改变位的值。有时,需要检查某位的值。例如, flags1 号位是否被设置为 1 ?不能这样直接比较 flagsMASK

if (flags == MASK)
     puts("Wow!");    /* 不能正常工作 */

这样做即使 flags1 号位为 1 ,其他位的值会导致比较结果为假。因此,必须覆盖 flags 中的其他位,只用 1 号位和 MASK 比较:

if ((flags & MASK) == MASK)
     puts("Wow!");

由于按位运算符的优先级比 == 低,所以必须在 flags & MASK 周围加上圆括号。

为了避免信息漏过边界,掩码至少要与其覆盖的值宽度相同。