c++中模运算和取余
作者:野牛程序员:2025-11-23 09:49:27C++阅读 2287
c++中模运算和取余
◆ 基础概念
1. 模运算(mod)
在 C++ 中使用 % 运算符。
本质:得到两个整数相除后的“余数”,结果符号与左操作数保持一致。
示例:
7 % 3 // 结果为 1 -7 % 3 // 结果为 -1 7 % -3 // 结果为 1
规律:
a = (a / b) * b + (a % b) 其中 / 是向零取整的整数除法
2. 取余运算(remainder)
从数学角度,“取余”是余数的统称,而在 C++ 标准库中还有一个函数:
std::remainder(x, y)
其计算方式与 % 不同:
计算 x − n * y,其中 n 为最接近 x/y 的整数(四舍五入)。结果可能为正、为负,也可能大于 |y|/2。
示例:
#include <cmath> std::remainder(7.0, 3.0); // 结果为 1 std::remainder(7.0, 4.0); // 结果为 -1
◆ 二者核心区别
| 项目 | % 运算符(整数模) | std::remainder(浮点余数) |
|---|---|---|
| 适用类型 | 仅整数 | 浮点数 |
| 规则 | 向零截断后的余数 | 基于四舍五入的数学定义 |
| 结果范围 | 绝对值 < | b |
| 最重要特性 | 结果符号与左操作数相同 | 结果可以正也可以负 |
◆ 简单总结
%:整数的模运算,是最常用的取余方式。std::remainder:数学意义上的浮点余数,与%的规则完全不同。
若需要整数运算,使用 %;
若需要浮点精确余数,可使用 std::remainder。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

