正文

類型、變量與標準(9)

通過游戲編程實戰(zhàn)教新手學C++編程 作者:(美)Michael Dawson


1.4.2  加法、減法與乘法

程序使用內置的算術運算符來實現加法(加號,+)、減法(減號,–)和乘法(星號,*)運算。圖1-4所示結果和預期一致。

每個算術運算符都是表達式的一部分。每個表達式都可以求出單個值。例如,表達式7 + 3求值得到10,然后發(fā)送給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  運算符的優(yōu)先級

C++中的算術表達式和代數學中一樣從左到右依次求值。但是有些運算符的優(yōu)先級比較高,無論處于什么位置都將首先求值。乘法、除法和取模運算的優(yōu)先級相同,都高于加法和減法。

接下來的一行代碼演示了優(yōu)先級的作用。因為乘法的優(yōu)先級高于加法,所以首先計算乘法的結果。因此,表達式7 + 3*5等于7 + 15,結果為22。

如果需要首先計算較低優(yōu)先級的運算操作,可以使用括號,它比任何算術運算符的優(yōu)先級都高。所以在下一條語句中,表達式(7 + 3) * 5等于10 * 5,結果為50。

提示

C++運算符一覽表及其優(yōu)先級詳見附錄B。


上一章目錄下一章

Copyright ? 讀書網 www.dappsexplained.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號