正文

类型、变量与标准(9)

通过游戏编程实战教新手学C++编程 作者:(美)Michael Dawson


1.4.2  加法、减法与乘法

程序使用内置的算术运算符来实现加法(加号,+)、减法(减号,–)和乘法(星号,*)运算。图1-4所示结果和预期一致。

每个算术运算符都是表达式的一部分。每个表达式都可以求出单个值。例如,表达式7 + 3求值得到10,然后发送给cout输出。

1.4.3  理解整型与浮点型除法

接下来的一行代码中使用斜线(/)来做除法运算。然而,输出结果可能有点让人出乎意料。根据C++的实现方式(以及该程序平台),7除以3等于2。为什么?原因在于,整型(没有小数部分的数)的算术运算结果总是整型。因为7和3都是整型,所以结果也必须是整型,其小数部分被去除。

如果要得到保留小数部分的结果,那么至少需要有一个数是浮点型(带小数部分的数)。接下来一行代码中表达式7.0 / 3.0的结果便保留了小数部分。这次结果更精确,是2.33333。

陷阱

您也许注意到7.0/3.0(2.33333)的结果虽然包含了小数部分,但这个结果仍然是被截短过的(真正的结果在十进制小数点后面有无穷多个3) 。需要了解的是,计算机一般只存储浮点数的有限个数的高位数字。然而,C++提供了不同种类的浮点数以满足最苛刻的要求,甚至可以满足计算密集型的3D游戏的要求。

1.4.4  使用取模运算符

接下来的一条语句使用的运算符可能比较陌生——取模运算符(%)。取模运算符返回整型除法的余数。在本例中,7 % 3结果为7 / 3的余数1。

1.4.5  运算符的优先级

C++中的算术表达式和代数学中一样从左到右依次求值。但是有些运算符的优先级比较高,无论处于什么位置都将首先求值。乘法、除法和取模运算的优先级相同,都高于加法和减法。

接下来的一行代码演示了优先级的作用。因为乘法的优先级高于加法,所以首先计算乘法的结果。因此,表达式7 + 3*5等于7 + 15,结果为22。

如果需要首先计算较低优先级的运算操作,可以使用括号,它比任何算术运算符的优先级都高。所以在下一条语句中,表达式(7 + 3) * 5等于10 * 5,结果为50。

提示

C++运算符一览表及其优先级详见附录B。


上一章目录下一章

Copyright © 读书网 www.dushu.com 2005-2020, All Rights Reserved.
鄂ICP备15019699号 鄂公网安备 42010302001612号