上QQ阅读APP看书,第一时间看更新
4.4 疑难解惑
疑问1 C++位逻辑运算符的作用是什么?
1.掩码
掩码是通过&(位与)将某些位设置为开(1),将某些位设置为关(0)。将掩码0看作不透明,将1看作透明。
例如,只显示第二、三位。
2.打开位
打开位是通过|(位或)打开一个值的特定位,同时保持其他位不变。这是因为和0位或都为0,和1位或都为1。
例如,只打开第二、三位。
3.关闭位
例如,关闭第二、三位。
4.转置位
若第一位为1,则转置为0;若第一位为0,则转置为1。
例如,转置第二、三位。
疑问2 加、减、乘、除结果的数据类型和什么有关系?
加、减、乘、除结果的数据类型和算术的操作数有关,如果两个操作数均是整数类型,那么结果也是整数类型;如果至少一个操作数是浮点类型,那么结果也是浮点类型。
疑问3 使用条件运算符需要注意什么?
1.求值顺序
简单地说,条件运算符就是一种if-else结构形式,若expr1为真,则执行expr2,否则执行expr3。但需要注意它的求值顺序,expr2和expr3只能有一个被求值。
2.返回值
通常都会让条件表达式的expr2和expr3具有同一个类型,但其实这样不是必需的,只要expr2和expr3之间具有转换规则,编译器就会让代码通过。