进制转换计算器

输入数字并指定源进制,进制转换计算器会把它换算到 2–36 任意目标进制,同步显示二进制、八进制、十进制、十六进制结果和手算步骤。

按下方所选「源进制」填写;支持负号、一个小数点,可用空格/逗号分隔(如 1111 1111)。字母 A–Z 代表 10–35,大小写均可。请直接填数码本身,不要带 0x、0b、# 等前缀。

10 进制(十进制) 2552 进制(二进制)
11111111
2 进制(二进制)11111111 目标
8 进制(八进制)377
10 进制(十进制)255
16 进制(十六进制)FF

换算在浏览器本地完成,整数用 BigInt 高精度处理,超大数字也不丢精度;小数在某些进制下为无限循环,会按最多 40 位截断。

怎么用

  1. 填写要转换的数字在输入框里按「源进制」写下数字,例如十进制 255、十六进制 FF、二进制 1010。字母 A–Z 表示 10–35,大小写都行,可带负号和一个小数点。
  2. 选择源进制点选这个数字现在是几进制:二进制(2)、八进制(8)、十进制(10)、十六进制(16),或点「任意」填 2–36 之间的自定义进制。
  3. 选择目标进制点选要转成的进制,同样支持 2–36 任意进制。目标进制的结果会以大字突出显示。
  4. 读取结果与对照表工具即时给出目标进制结果,并附上二/八/十/十六进制对照表,点「复制」一键取用;整数用 BigInt 精确计算,小数在无限循环时按最多 40 位截断,不做四舍五入。

核心要点

进制转换就是用另一种「逢几进一」的写法表示同一个数。输入数字、选好源进制与目标进制, 即可在 2–36 进制之间互转,并同时给出二/八/十/十六进制对照。

  • 算例:十进制 255 = 二进制 11111111 = 八进制 377 = 十六进制 FF
  • 方向:转十进制用「权重展开求和」,从十进制转出用「除基取余法」。
  • 2 的幂之间:二↔八按 3 位一组、二↔十六按 4 位一组直接分组换。
  • 边界:十进制 0.1 转二进制会循环,最多显示 40 位小数; 循环尾数会截断,不会四舍五入。

原理与公式

进制(基数 base):逢 N 进一、用 N 个数码计数的规则。N 进制用 0…(N−1) 共 N 个数码,超过 9 的数码用字母 A–Z 表示 10–35。

其他进制 → 十进制:按权展开

每一位数码乘以「进制的位权」再求和。对 N 进制的数 dₖ…d₁d₀.d₋₁d₋₂…,其值为 Σ dᵢ × Nⁱ(整数位 i≥0,小数位 i<0)。

例 二进制 1010 = 1×2³+0×2²+1×2¹+0×2⁰ = 10
十六进制 FF = 15×16¹+15×16⁰ = 255

十进制 → 其他进制:除基取余

整数部分反复除以目标进制、记录余数,商为 0 后把余数倒序读出:

255 → 二进制
255 ÷ 2 = 127 余 1
127 ÷ 2 = 63 余 1 …(共 8 步)…
倒序读得 11111111

小数部分则反复乘以目标进制、取整数位,直到小数为 0 或达到位数上限。

2 的幂之间:分组直接换

8 = 2³16 = 2⁴:二进制每 3 位一组换一个八进制位、 每 4 位一组换一个十六进制位(从小数点向两边分组),无需绕十进制。 例 1111 1111₂ = FF₁₆

任意进制互转

一般做法是先把源进制的数按权展开为十进制中间值,再除基取余转到目标进制; 本工具内部用 BigInt / 精确分数完成,跳过浮点误差。

精度:整数全程 BigInt 精确,支持任意大整数;小数用分数精确逐位换算, 无限循环时按最多 40 位截断,所有计算在浏览器本地完成。

常见问题

怎么把十进制转成二进制 / 十六进制?(除基取余法)
整数部分用「除基取余法」:不断用这个数除以目标进制(转二进制就除以 2,转十六进制就除以 16),记下每一步的余数,直到商为 0,再把余数从下往上(从最后一个到第一个)读出来就是结果。例如 255 转二进制:255÷2 商 127 余 1、127÷2 余 1……一直到 0,倒着读得 11111111;255 转十六进制:255÷16 商 15 余 15(=F)、15÷16 商 0 余 15(=F),得 FF。本工具已自动完成并给出各进制结果。
怎么把二进制 / 十六进制转成十进制?(权重展开法)
用「按权展开求和」:把每一位数码乘以「进制的位数次幂」再相加。二进制 1010 = 1×2³ + 0×2² + 1×2¹ + 0×2⁰ = 8+0+2+0 = 10。十六进制 FF = 15×16¹ + 15×16⁰ = 240+15 = 255(F 代表 15)。小数位的权是负指数,如二进制 0.1 = 1×2⁻¹ = 0.5。任意进制转十进制都用这套方法,本工具会把结果一并列在对照表里。
二进制、八进制、十六进制之间怎么快速互转?
因为 8=2³、16=2⁴,它们与二进制之间可以「分组」直接换,不必绕经十进制。二进制转八进制:从小数点向两边每 3 位一组,每组换成一个八进制数码(如 11 010 → 3 2,即 32)。二进制转十六进制:每 4 位一组换一个十六进制数码(如 1111 1111 → F F,即 FF)。反过来,一个八进制位展开成 3 个二进制位、一个十六进制位展开成 4 个二进制位。本工具在源进制和目标进制之间直接换算,无论是否 2 的幂都能算。
支持负数、小数和很大的数字吗?精确吗?
都支持,整数部分用 BigInt(大整数)精确计算,不经过 JavaScript 浮点数,几十上百位整数也不会因为浮点表示而丢精度。负号照常处理;小数用精确的分数(分子/分母)逐位换算——注意一个进制下有限的小数,换到另一个进制可能变成无限循环(例如十进制 0.1 转二进制是无限循环 0.000110011…),这类情况会按最多 40 位截断并提示,截断不是四舍五入。所有计算在你的浏览器本地完成,不上传数据。
为什么十进制 0.1 转二进制会变成很长一串?
十进制 0.1 等于分数 1/10,分母里含有 5;而二进制能有限表示的小数,分母只能化成 2 的幂。因此 0.1 转成二进制会出现循环小数,常见写法是 0.0001100110011…。本工具会用分数逐位生成结果,达到 40 位小数上限后停止并提示截断,所以看到的是截断后的表示,不是四舍五入后的值。
什么是「进制」?为什么计算机用二进制和十六进制?
进制(基数 base/radix)是计数时「逢几进一」的规则:十进制逢十进一,用 0–9 十个数码;二进制逢二进一,只用 0、1;十六进制逢十六进一,用 0–9 和 A–F 共 16 个数码。计算机底层用高低电平表示 0 和 1,所以天然用二进制;但二进制写起来太长,而 16=2⁴,每 4 个二进制位正好对应 1 个十六进制位,于是十六进制成为二进制的「速记」,常见于内存地址、颜色值(如 #FF0000)、编码等场景。
为什么要选源进制?直接看出来不行吗?
同一串数码在不同进制下代表不同的值,必须先告诉工具它是几进制。例如「10」在二进制里是 2、在八进制里是 8、在十进制里是 10、在十六进制里是 16;「11」在二进制是 3、在十进制是 11。只有数码全是 0–9 且没有超出进制范围时才可能有歧义,所以务必选对源进制。另外像十六进制的 FF、二进制的 1010,也要选对源进制工具才知道该怎么解读。

来源与更新

进制、位值记数法与转换算法的依据(检索日期 2026-07-17):

  • 进制(基数 base/radix)与位值记数法的定义,参考 Wolfram MathWorld Base
  • 十进制与其他进制互转(除基取余、按权展开)的方法,参考 Khan Academy Number systems introduction
  • 二进制、十六进制与计算机表示,参考 MDN Web Docs Hexadecimal

本工具为纯数学换算,不含税率、利率等会随政策变化的参数,结果以通用数学定义为准。 内容经本站编辑整理与核对,仅供学习与参考。

最近更新:2026-07-17

本工具按通用数学定义在各进制之间换算,整数结果为精确值,供学习与日常参考。