取模计算器
取模(或称“mod“)运算返回整数除法后的余数:17 mod 5 = 2,因为 17 = 3·5 + 2。它是时钟算术、密码学、哈希函数以及 SQL 中“每隔第 N 行“模式的核心。本计算器接受整数或小数操作数,明确显示商与余数,并处理各语言之间符号约定的差异(负数时 Python 的 % ≠ C 的 %)。
如何计算 a mod b
-
1
输入被除数 (a) 与除数 (b)
任意数字均可;支持小数和负数。
-
2
选择符号约定
截断除法(C、Java、Go),向下取整除法(Python、Ruby、数学约定)。
-
3
读取商与余数
a = q·b + r,r 的符号由所选规则决定。
-
4
查看数学表达式
代入数值后,每一步都清晰可见。
负数的两种约定
对于正操作数,所有约定一致:17 mod 5 = 2。对于负数,各语言有所不同:
| 语言 | -17 mod 5 |
约定 |
|---|---|---|
| Python、Ruby | 3 | 向下取整 |
| C、Java、Go、JS | -2 | 截断 |
| 数学教科书 | 3 | 向下取整(通常) |
向下取整除法: 商向 −∞ 方向取整。余数始终与除数同号:与 b 同号。
截断除法: 商向零方向取整。余数与被除数同号:与 a 同号。
当 a = -17、b = 5 时:
- 截断: q = -3(向 0 取整),r = -17 − (-3)·5 = -2。
- 向下取整: q = -4(向 -∞ 取整),r = -17 − (-4)·5 = 3。
在各自的约定下两者都正确。请选择与你的语言相符的方式。
取模的应用场景
- 时间。 一小时中的分钟、一周中的天数、一天中的秒数,都是取模算术。
- 哈希表。
hash(key) mod table_size选择一个桶。 - 轮询调度。
task_i mod worker_count分配任务。 - 密码学。 RSA 和 Diffie-Hellman 建立在使用超大素数的 mod
n之上。 - 每隔第 N 行。 在 SQL 中:
WHERE id % 3 = 0。 - 奇偶校验。
n mod 2 == 0表示偶数。 - 交替图案。 行条纹,每隔一项着色。
- 环形缓冲区。
(index + 1) mod size会绕回起点。
有用的恒等式
(a + b) mod n = ((a mod n) + (b mod n)) mod n(a · b) mod n = ((a mod n) · (b mod n)) mod n(a^k) mod n可通过快速模幂在 O(log k) 时间内算出,对大数密码学至关重要。- 对任意整数 a,
a mod 1 = 0。 a mod a = 0。
小数取模
对于实数,自然定义为 a mod b = a − b · floor(a/b)。7.5 mod 2.5 = 0,因为 7.5 是精确倍数。7.6 mod 2.5 = 0.1。
JavaScript 的 % 运算符适用于实数;Python 的 fmod 执行截断式实数取模;Python 的 % 执行向下取整式实数取模。
计算示例
100 mod 7:100 = 14·7 + 2,因此余数为 2。25 mod 4:25 = 6·4 + 1,因此余数为 1。-10 mod 3(向下取整):-10 = -4·3 + 2,余数 2。(截断则得-1。)17.5 mod 5:17.5 = 3·5 + 2.5,余数 2.5。
常见问题
大多数情况下二者是同义词。正式而言,“modulo”通常指数学约定(向下取整),而“remainder“(余数)通常指截断变体(C 风格)。这些名称会渗入各语言的文档;当区别重要时,请明确注明所用约定。
Python 遵循数学约定(向下取整),使余数符号与除数一致;C 遵循硬件 ALU 约定(截断),使余数符号与被除数一致。两者都不算错,只是不同的选择。
不能,除以零没有定义。当 b = 0 时,计算器会返回错误。
通常相同。请查阅你所用语言关于负数处理的规范,Python 和 Ruby 与 C、Java、Go 和 JavaScript 不同。
对于使用 2048 位数字的 RSA 式运算,请使用专用库(Python 的 pow(a, b, n)、Java 的 BigInteger.modPow)。本计算器处理日常数值,而非密码学级别的数值。
相关工具
EBITDA 计算器
在净利润的基础上加回利息、税金、折旧和摊销来计算 EBITDA。查看投资者和放贷方用于比较企业的经营利润指标。
每股收益(EPS)计算器
根据净利润、优先股股利和加权平均流通股数计算基本每股收益(EPS)。查看投资者用来给股票估值的每股利润指标。
宏量营养素计算器
把每日热量目标和宏量营养素百分比换算成蛋白质、碳水化合物和脂肪的克数。可查看均衡、高蛋白、增肌和低碳水分配。
板条护墙间距计算器
根据墙面宽度、净间距、板条实际宽度、锯缝和备用比例,规划室内板条护墙的中心线及竖向板条用料。
螺栓圆计算器
计算等分螺栓孔的PCD、角间距和精确X/Y坐标,并可设置旋转、中心偏移及导出CSV。
皮带长度计算器
根据两个带轮直径和轴中心距,用精确几何与标准近似公式计算开式皮带的节线长度。
此工具还提供其他语言版本
- حاسبة باقي القسمة (Modulo) [AR]
- Modulo-Rechner [DE]
- Kalkulator Modulo [ID]
- Máy tính modulo [VI]
- 剰余計算機 [JA]
- 모듈로 계산기 [KO]
- Modulo-calculator [NL]
- เครื่องคำนวณโมดูโล (Modulo) [TH]
- Calculateur de Modulo [FR]
- Calculadora de Módulo [ES]
- Modulokalkylator [SV]
- Calculadora de Módulo [PT]
- Kalkulator modulo [PL]
- Modulo Calculator [EN]
- Calcolatore Modulo [IT]
- Калькулятор остатка от деления [RU]
- Modulo Hesaplayıcı [TR]