通过MCP连接 →

输入计算

数学公式

广告

结果

结果(a mod b)
1
截断约定(即 "%" 运算符规则)
商(向零截断) 2
向下取整取模(符号与除数一致) 1
5 div 2 = 2 R 1; check 2 x 2 + 1 = 5. So 5 mod 2 = 1.

什么是取模运算?

取模运算通常写作 a mod b,表示被除数 a 除以模数(除数)b 之后剩下的余数。它在计算机科学和数学中无处不在:时钟运算、哈希算法、循环遍历列表、判断整除关系以及密码学,都离不开它。本工具可以对正数、负数和小数求余数,并附上完整的分步推导过程。

数轴显示 17 被分成三次步长为 5 的跳跃,余数为 2
17 mod 5 = 2:以整步减去除数,剩下的就是余数。

如何使用

分别填入 被除数(a)模数 / 除数(b)。两个数都可以是负数或小数——点击 +/- 按钮即可快速切换正负号。除数不能为 0,因为除以 0 在数学上没有定义。计算结果会显示余数、整数商、可选的向下取整取模值,以及一段文字推导。

公式解析

本计算器采用 截断除法(truncated division) 约定,这也是 C、Java 和 JavaScript 中 % 运算符所遵循的规则。第一步,把商向零截断:q = trunc(a / b);第二步,求余数 n = a - q*b。由于商是向零截断而非向下取整,所以余数的符号与被除数 a 相同。例如本工具中 -5 mod 2 = -1;而另一种"向下取整"约定(作为附加结果显示)会给出 1,此时余数的符号与除数相同。

$$\text{a} \bmod \text{b} = \text{a} - \left\lfloor \dfrac{\text{a}}{\text{b}} \right\rceil_{0} \cdot \text{b}$$

$$\begin{gathered} r = \text{a} - q \cdot \text{b} \\[1.5em] \text{where}\quad \left\{ \begin{aligned} q &= \operatorname{trunc}\!\left( \dfrac{\text{a}}{\text{b}} \right) \\ \text{b} &\neq 0 \end{aligned} \right. \end{gathered}$$

Advertisement
a 等于 b 乘商加余数的示意图,配有分段圆环
恒等式 a = b·q + r 是取模结果 r 的基础。

计算示例

设 \(a = 5\),\(b = 2\):商为 \(\operatorname{trunc}(5/2) = \operatorname{trunc}(2.5) = 2\),余数为 \(5 - 2 \times 2 = 1\)。推导:\(5 \div 2 = 2\) 余 1,且 \(2 \times 2 + 1 = 5\),所以 \(5 \bmod 2 = 1\)。再看一个小数的例子:\(7.5 \bmod 2\),商为 \(\operatorname{trunc}(3.75) = 3\),余数为 \(7.5 - 3 \times 2 = 1.5\)。

常见问题

为什么 -5 mod 2 = -1 而不是 1?本工具遵循编程语言中的截断约定,因此余数的符号与被除数一致。如果你需要符号与除数一致的数学约定结果(即 1),可以查看"向下取整取模"那一行。

怎样判断整除关系?当且仅当 x mod b = 0 时,x 才是 b 的倍数。例如 496 mod 4 = 0(是倍数),而 226 mod 4 = 2(不是倍数)。

除数可以是 0 吗?不可以。除以 0 在数学上没有定义,所以当 b = 0 时计算器会返回错误提示。

最后更新: