使用运算符:*,/和%

 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;
}

请参见

参考

与二元运算符的表达式

C++运算符

运算符优先级和结合性

C使用运算符