C++:乘法运算符和取模运算符

本文详细介绍了C++中的乘法、除法和取模运算符的语法、行为及注意事项。乘法运算符(*)和除法运算符(/)用于算术计算,取模运算符(%)返回两数相除的余数,要求操作数为整型。需要注意的是,0作为除数会导致运行时错误,而取模运算结果的符号取决于第一个操作数。在实际运算中,可能因溢出导致信息丢失。文章还提供了示例代码以帮助理解这些运算符的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++:乘法运算符和取模运算符

语法

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值