GUIDE · 系统教程

进制转换百科:一套公式讲清所有进制怎么换

不管基数是几,换算方法只有两套:位权展开和除基取余。这一页把它们彻底讲透,并补齐课本里常常一笔带过的负数、小数与任意进制话题。

任意进制换算器(2 - 36 进制)

不止四种常用进制:下拉框收录了 2 到 36 之间的常用基数,36 进制使用 0-9 与 A-Z。

转换结果会显示在这里

THE FORMULA

核心公式:位权展开

所有进制都遵循同一个数学结构。设基数为 b,一个 n 位数从右往左第 i 位(i 从 0 开始)的数字是 dᵢ,则它对应的十进制值为:

值 = dₙ₋₁×bⁿ⁻¹ + … + d₂×b² + d₁×b¹ + d₀×b⁰

举个跨进制的例子验证一下。三十六进制的 ZZ(Z 代表 35):Z×36 + Z = 35×36 + 35 = 1295。再比如十二进制的 1B(B 代表 11):1×12 + 11 = 23。公式不需要记忆变形,任何基数都直接套用,这也是它比背「二进制怎么转、八进制怎么转」更划算的原因——一张公式卡走遍所有进制。

反过来,十进制转基数为 b 的进制用「除 b 取余」:不断除以 b、记下余数,直到商为 0,再把余数倒序排列。两者一个负责「读出」,一个负责「写出」,合起来就是进制换算的全部。想随时验算,用本页顶部的任意进制换算器即可,它支持 2 到 36 的全部基数。

为什么是「满 b 进一」

基数的含义是「这一位集满多少个一就向高位进位」。十进制数到 9 之后再加 1,个位没有新符号可用,只能清零并给十位加 1;二进制数到 1 之后再加 1,同理清零进位变成 10。基数越小,符号越少但位数越长;基数越大,表达越紧凑但需要更多符号——十六进制为此引入了字母,三十六进制干脆用尽 26 个字母。

SHORTCUTS

四条捷径:常用进制之间的快速通道

捷径一:二进制 ↔ 十六进制,4 位一组

2⁴ = 16,二进制每 4 位对应 1 位十六进制。二转十六从右往左分组、补零、查表;十六转二进制则每个字符直接展开成 4 位。这是所有捷径里使用频率最高的一条,调试内存、看十六进制转储文件都靠它。详细示例见二进制转换页。

捷径二:二进制 ↔ 八进制,3 位一组

2³ = 8,道理相同,只是每组变成 3 位。例如二进制 1111101 分组 001 / 111 / 101,即八进制 175。Linux 文件权限就是这条捷径的日常应用,见八进制转换页的 755 实例。

捷径三:八进制 ↔ 十六进制,借道二进制

八进制和十六进制之间没有直接的分组关系(3 和 4 没有公倍数意义上的对应),最快路径是先展开成二进制再重新分组:八进制 175 → 001111101 → 0111 1101 → 0x7D。整个转换只是查表和分组,不需要乘除。

捷径四:任何进制 → 十进制 → 任何进制

遇到不熟悉的基数(比如五进制、十二进制),最稳妥的方法永远是「两段式」:先用位权展开折算成十进制,再用除基取余写出目标进制。位数不多时手算完全可行,位数多或数值大时交给转换器,逐位运算不会出错。

ADVANCED

进阶话题:负数、小数与任意进制

负数与补码

计算机里没有单独的减法电路,负数统一用补码(Two's Complement)表示:正数的补码是它本身;负数的补码 = 对应正数按位取反后整体加 1。以 8 位为例,+45 是 00101101,取反得 11010010,加 1 得 11010011,这就是 -45。补码的妙处在于加法器可以直接做减法:45 + (-45) 按位相加恰好得到 1 00000000,舍去溢出的最高位后正好是 0。也因为最高位被当作符号位,8 位有符号数的范围是 -128 到 +127,而不是 0 到 255。

换算负数时务必先确认位宽:同一个 -45,8 位补码是 11010011,16 位补码则是 1111111111010011,两者完全不同。这是进制转换里最容易踩的坑。

小数转换:乘基取整

整数部分「除基取余」,小数部分方向相反——「乘基取整」:每次把小数部分乘以基数,取走整数部分作为一位,再对剩下的纯小数重复,直到小数部分归零或达到所需精度。例如 0.8125 转二进制:0.8125×2=1.625 取 1,0.625×2=1.25 取 1,0.25×2=0.5 取 0,0.5×2=1.0 取 1,得 0.1101。

要特别留意:许多十进制小数在其他进制下是无限循环小数。0.1 的二进制是 0.0001100110011…循环,无法被有限位精确表示,因此浮点数天生带着舍入误差。这也解释了为什么金融类程序宁可把金额存成「分」(整数)也不存小数。

任意进制与生活实例

进制不只活在计算机里:时间计数是六十进制(60 秒进 1 分)、角度也用六十进制的分秒;十二进制藏在「一打」里;短链接服务把自增 ID 转成 62 进制(0-9、a-z、A-Z)来缩短网址;早期的 IP 选项、部分序列号体系用到三十六进制。看懂位权公式后,这些「奇怪进制」都只是符号表不同的普通进位计数制而已。

FULL TABLE

0 - 32 完整对照表

一张表覆盖二、八、十、十六进制全部常用值,打印或截图放在手边,多数换算场景可以直接查表解决。

十进制二进制八进制十六进制
0000
1111
21022
31133
410044
510155
611066
711177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F
16100002010
17100012111
18100102212
19100112313
20101002414
21101012515
22101102616
23101112717
24110003018
25110013119
2611010321A
2711011331B
2811100341C
2911101351D
3011110361E
3111111371F
321000004020
FAQ

进制学习常见问题

进制转换的通用公式是什么?

两套互逆的方法:任意进制转十进制用位权展开——每位数字乘以基数的对应次方(从右往左 0 次方起步)后求和;十进制转任意进制用除基取余、余数倒排。二进制与八进制、十六进制之间另有 3 位、4 位分组的捷径。

计算机中负数为什么要用补码表示?

补码让同一套加法器既能做加法也能做减法(减一个数等于加它的补码),省掉了专门的减法电路;同时 0 的表示唯一,不会出现 +0 和 -0 之分。负数补码 = 对应正数按位取反再加 1,最高位是符号位。

36 进制是什么样子的?

36 进制使用 0-9 加 A-Z 共 36 个符号,「满三十六进一」。它能在最少的字符里表达最大的数(两位 36 进制即可覆盖 0-1295),常用于短链接、优惠码、批量序列号等需要紧凑表示大整数的场景。本页顶部换算器支持到 36 进制。

学进制转换有什么高效练习方法?

建议三步走:先把 0-15 对照表背到条件反射;再练「4 位一组」读十六进制和「除 2 取余」写二进制这两个最常用操作;最后用本站各转换页对自己的手算结果做即时校验。每天十分钟,一周左右就能脱离工具心算常见值。

学完理论,上手实战

四个进制专属转换页已经为你准备好,边学边练印象最深。

打开综合转换器 从二进制开始