语法
expression * expression
expression / expression
expression % expression
备注
乘法运算符为:
乘法 (*)
划分 (/)
取模) (余数 (%)
这些二进制运算符具有从左至右的关联性。
乘法运算符采用算术类型的操作数。 取模运算符 (%) 具有更严格的要求,因为其操作数必须是整型。 (获取浮点除法的余数,请使用运行时函数 fmod。 ) 标准转换 中涵盖的转换适用于操作数,并且结果为转换后的类型。
除法运算符产生的结果为将第一个操作数乘以第二个操作数所获得的结果。
除法运算符产生的结果为将第一个操作数除以第二个操作数所获得的结果。
取模运算符会产生下面的表达式所指定的余数,其中, e1 是第一个操作数, e2 为第二个操作数: e1 - (e1 / e2) * e2,其中两个操作数均为整型类型。
在除法或取模表达式中被 0 除的结果是不确定的,将会导致运行时错误。 因此,以下表达式生成未定义的错误结果:
i % 0
f / 0.0
如果乘法、除法或取模表达式的两个操作数具有相同的符号,则结果为正。 否则,结果为负。 取模运算的符号的结果是实现定义的。
备注
由于在溢出或下溢条件不提供由乘法运算符执行的转换,因此,如果乘法操作的结果在转换后不能用操作数类型表示,则信息可能丢失。
在 Microsoft C++ 中,取模表达式的结果的符号始终与第一个操作数的符号相同。
如果两个整数的减法计算不准确,并且只有一个操作数为负,则结果是最大的整数(在数量级上,忽略符号),该整数小于减法运算所生成的准确值。 例如,-11/3 的计算值为-3.666666666。 整数相除的结果为-3。
乘法运算符之间的关系由标识 (e1 / e2) * e2 + e1 % e2 == 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;
}
该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处,本文章博客地址:https://blog.youkuaiyun.com/it_cplusplus/article/details/118834943