使用运算符:*,/和%
expression * expression
expression / expression
expression % expression
备注
使用运算符是:
乘法 (*)
除法 (/)
modulo (从部门) (%) 的其余部分
这些二进制运算符具有从左向右的关联性。
使用运算符采用算术类型的操作数。 取模运算符 (%) 具有更严格的要求其操作数必须是整型。 (获取一个浮点除法运算的其余部分,使用该运行时函数, fmod。)在 算术转换 介绍的变换应用于操作数,因此,结果将是该转换的类型。
乘法运算符产生乘积第一个操作数的结果。第二个。
除法运算符由另一个生成将第一个操作数的结果。
取模运算符产生下列表达式会的其余部分, e1 是第一个操作数,并且 e2 是第二: e1 (e1 / e2) * e2,其中两个操作数是整型。
x 0 的除法在部门或取模表达式未定义并导致运行时错误。 因此,下面的表达式生成未定义,导致错误:
i % 0
f / 0.0
如果对乘法、部门或取模表达式中的两个操作数具有相同的符号,则结果是一样的。 否则,结果为负数。 取模操作的符号的结果实现中定义。
备注
因为使用运算符执行的转换不提供溢出或下溢条件,信息可能丢失,如果因操作的结果在操作数的类型不能表示在转换后。
Microsoft 专用
Microsoft C++,取模表达式的结果总是为与第一个操作数的符号。
特定于 Microsoft 的结尾
如果两个整数计算的部门不确切的,并且只有一个操作数为负数,则结果是最大的整数 (在大小,忽略该符号) 的确切值除法运算将为小于。 例如,计算的值为 – 11/3 为 – 3.666666666。 该整除的结果为 – 3。
该标识为使用运算符之间的关系 (e1 / e2) * e2 + " e2 == 1% e1。
示例
下面的过程演示使用运算符。 请注意必须显式强制转换 10 / 3 其中一个操作数类型 float 避免截断,以便两个操作数是类型 float 在部门前面。
// expre_Multiplicative_Operators.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
int main() {
int x = 3, y = 6, z = 10;
cout << "3 * 6 is " << x * y << endl
<< "6 / 3 is " << y / x << endl
<< "10 % 3 is " << z % x << endl
<< "10 / 3 is " << (float) z / x << endl;
}