C++语言程序设计

在进行除运算时，需要注意右操作数，即除数应为非零值，否则就会产生浮点运算错误。编程时，我们通常用if语句判别除数是否为0，例如：
if (a != 0) // 只有a 不等于 0 时才执行下面的操作
c = b / a;
'%'为取余运算符，用于把它前面的整数值或表达式除以其后面的整数值或表达式，结果为不能被后面的整数或表达式整除的最小整数，它后面的数值应该为大于1的正整数。如表中所示的"13%7"，就表示13 除以7余6。
上面所有的运算符都是双目运算符，左右操作数可以是数值，也可以是表达式。根据左右操作数类型的不同会产生不同的结果。如：9 / 4 = 2，而9 / 4.0 = 2.5、9.0 / 4 =2.5、9.0 / 4.0 = 2.5。
但'%'运算符的左右操作数必须是整数，否则，会产生编译错误。
同时需要注意的是：加法和乘法运算有可能超过计算机能表示的最大数，产生溢出。如：1.e307 * 1.e307则会产生一个不确定数，即计算机不能表示的数。计算机表示的常用数据类型的取值范围可以见下表。

| 表3-2

类型 | 最小值 | 最大值
signed char | -128 | +127
unsigned char | 0 | +255
signed short | -32768 | +32767
unsigned short | 0 | +65535
signed long | -2147483648 | +2147483647
unsigned long | 0 | +4294967295
Float | -3.402823466e +38F | +3.402823466e +38F
Double | -1.7976931348 623158e+308 | +1.7976931348 623158e+308

另外，整型的数值中有不同的类型如字符型、短整型、长整型。他们之间的类型转换需要特别的注意。如：
一个无符号字符型的变量
unsigned char a, b;
a = 90*10; // 结果a 不等于900，而等于132，其实就是把900这个整数转化为无符号字符型数的结果，即(unsigned char )900的结果为132。
b = 200+100; // 结果 b 不等于 300，而等于44。
它们之间的优先级关系是运算符'*''/''%'相同，且优先于运算符'+'、'-'。在搞不清优先级关系时，最好用括号'（''）'进行分离组合。如：
(100.+20.) - (20 - 30) *40.
需要注意的是：当这些符号出现在字符串中时，就被计算机的编译器处理成字符串中的字符，而不是运算符。如：字符?quot;ab+cd-def"中的'+'和'0'就只是代表两个字符而已。
而且，'+' 、'-'运算符也可以作为单目运算符使用，如+100，-100分别表示正的100和负的100。当它们作为单目运算符时，将具有很高的运算优先级。具体可看3.2优先级和结合性一节。