- C++从零开始学(视频教学版)(第2版)
- 王英英
- 460字
- 2021-03-26 11:40:15
4.4 疑难解惑
疑问1 C++位逻辑运算符的作用是什么?
1.掩码
掩码是通过&(位与)将某些位设置为开(1),将某些位设置为关(0)。将掩码0看作不透明,将1看作透明。
例如,只显示第二、三位。
![](https://epubservercos.yuewen.com/A8BCBE/16499866604816706/epubprivate/OEBPS/Images/Figure-P88_11846.jpg?sign=1739023373-rgaZ16OLis4ZZUtioAF8S4eBPq8GHqbU-0-4df5b4976e35f62c310579a9a78b30d6)
2.打开位
打开位是通过|(位或)打开一个值的特定位,同时保持其他位不变。这是因为和0位或都为0,和1位或都为1。
例如,只打开第二、三位。
![](https://epubservercos.yuewen.com/A8BCBE/16499866604816706/epubprivate/OEBPS/Images/Figure-P88_11847.jpg?sign=1739023373-7anpbkc5c7zGPUTt4mddlpntd8NIf0Vn-0-c9c96b76f64596a9ec01e247969d167c)
3.关闭位
例如,关闭第二、三位。
![](https://epubservercos.yuewen.com/A8BCBE/16499866604816706/epubprivate/OEBPS/Images/Figure-P89_11923.jpg?sign=1739023373-ca2izItNOR7kk9Oo3YHZylrxTSrrzcnz-0-ff401b3e8e863cc224c5fe9be0b47fbc)
4.转置位
若第一位为1,则转置为0;若第一位为0,则转置为1。
例如,转置第二、三位。
![](https://epubservercos.yuewen.com/A8BCBE/16499866604816706/epubprivate/OEBPS/Images/Figure-P89_11924.jpg?sign=1739023373-jikUQ8stmXwC7DidSDHI3hA0SvtaHnrj-0-b6137091ff24ef335dccf5d564ff2a80)
疑问2 加、减、乘、除结果的数据类型和什么有关系?
加、减、乘、除结果的数据类型和算术的操作数有关,如果两个操作数均是整数类型,那么结果也是整数类型;如果至少一个操作数是浮点类型,那么结果也是浮点类型。
疑问3 使用条件运算符需要注意什么?
1.求值顺序
简单地说,条件运算符就是一种if-else结构形式,若expr1为真,则执行expr2,否则执行expr3。但需要注意它的求值顺序,expr2和expr3只能有一个被求值。
2.返回值
通常都会让条件表达式的expr2和expr3具有同一个类型,但其实这样不是必需的,只要expr2和expr3之间具有转换规则,编译器就会让代码通过。