18-C++算术运算符
3.4 C++算术运算符
读者可能还对学校里作的算术练习记忆犹新,在计算机上也能够获得同样的乐趣。C++使用运算符来运算。它提供了几种运算符来完成5种基本的算术计算:加法、减法、乘法、除法以及求模。每种运算符都使用两个值(操作数)来计算结果。运算符及其操作数构成了表达式。例如,在下面的语句中:
int wheels = 4 + 2;
4和2都是操作数,+是加法运算符,4+2则是一个表达式,其值为6。
下面是5种基本的C++算术运算符。
+运算符对操作数执行加法运算。例如,4+20等于24。
- −运算符从第一个数中减去第二个数。例如,12−3等于9。
- 运算符将操作数相乘。例如,284等于112。
- /运算符用第一个数除以第二个数。例如,1000/5等于200。如果两个操作数都是整数,则结果为商的整数部分。例如,17/3等于5,小数部分被丢弃。
- %运算符求模。也就是说,它生成第一个数除以第二个数后的余数。例如,19%6为1,因为19是6的3倍余1。两个操作数必须都是整型,将该运算符用于浮点数将导致编译错误。如果其中一个是负数,则结果的符号满足如下规则:(a/b)*b + a%b = a。
当然,变量和常量都可以用作操作数,程序清单3.10说明了这一点。由于%的操作数只能是整数,因此将在后面的例子中讨论它。
程序清单3.10 arith.cpp
// arith.cpp -- some C++ arithmetic
#include <iostream>
int main()
{
using namespace std;
float hats, heads;
cout.setf(ios_base::fixed, ios_base::floatfield); // fixed-point
cout << "Enter a number: ";
cin >> hats;
cout << "Enter another number: ";
cin >> heads;
cout << "hats = " << hats << "; heads = " << heads << endl;
cout << "hats + heads = " << hats + heads << endl;
cout << "hats - heads = " << hats - heads << endl;
cout << "hats * heads = " << hats * heads << endl;
cout << "hats / heads = " << hats / heads << endl;
return 0;
}
下面是该程序的输出,从中可知C++能够完成简单的算术运算:
Enter a number: 50.25
Enter another number: 11.17
hats = 50.250000; heads = 11.170000
hats + heads = 61.419998
hats - heads = 39.080002
hats * heads = 561.292480
hats / heads = 4.498657
也许读者对得到的结果心存怀疑。11.17加上50.25应等于61.42,但是输出中却是61.419998。这不是运算问题;而是由于float类型表示有效位数的能力有限。记住,对于float,C++只保证6位有效位。如果将61.419998四舍五入成6位,将得到61.4200,这是保证精度下的正确值。如果需要更高的精度,请使用double或long double。