跳到主内容
UniKit

大数计算器

用 BigInt 做任意精度计算:支持括号与 + - * / % ^ ! 表达式、整除取余、幂、阶乘、GCD/LCM、取模与比较,并可切换十进制、十六进制、二进制显示。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

表达式
结果
十六进制
二进制

二元运算 · GCD / LCM / 取模 / 比较

两个操作数都支持十进制、0x 十六进制、0b 二进制与千分位逗号

运算
运算结果
21

这个工具能做什么

  • 算密码学里的大数:`2^256`、`2^64 + 1`、RSA 示例里的模幂中间结果,普通计算器早就溢出了。
  • 算阶乘和组合数:`100!` 有 158 位,工具会连同位数、二进制位宽和字节数一起给出。
  • 求最大公约数、最小公倍数、取模和大小比较,两个操作数都支持 0x 十六进制与 0b 二进制写法。
  • 排查位运算或哈希实现时把结果切换成十六进制、二进制核对,避免自己数错位。

示例

输入

2^100 + 3^40

输出

1,267,650,600,240,387,066,955,760,134,177

这是工具默认示例的真实结果,十进制输出会加千分位逗号;同一个值的十六进制是 0x1000000000A8B8B452291FE821,二进制位宽 101。

常见问题

支持小数或除法得到小数吗?

不支持。所有运算都在 BigInt 上做整数运算,`1.5` 会被报「表达式里有不认识的字符」,除法 `7/2` 得到 3(向下取整,等价于整除),取余用 `%`。这是刻意的:任意精度十进制需要另一套库,也会让「精确结果」的承诺变模糊。

为什么会有指数上限?

因为结果大小是指数级增长的。工具限制指数不超过 100000,且结果二进制位宽不超过 100 万位(约 30 万位十进制),超了会报「结果过大」。这是为了防止 `2^999999999` 把浏览器标签页直接卡死——真要算那种量级,用 Python 的 int 或 GMP 更合适。

阶乘能算到多少?

参数上限是 10000。`10000!` 约有 35660 位十进制,现代浏览器算完需要一小会儿。参数超过上限或传入负数会报「阶乘参数过大」/「阶乘只接受非负整数」。

取模结果的符号怎么定?

跟随被除数,和 JavaScript 的 `%` 一致:`-7 % 3` 是 -1 而不是 2。如果你要的是数学意义上的非负余数,用 `((-7 % 3) + 3) % 3` 的写法,或者改用专门的模运算工具。

计算结果会发到服务器吗?

不会。表达式解析和 BigInt 运算全部在浏览器里完成,页面不发任何网络请求,断网也能用。

关键词:bigintbig number大数计算大数计算器任意精度arbitrary precision阶乘factorialgcdlcm最大公约数最小公倍数pow幂运算余数remainder

同类工具