外观
进制转换通用规则
约 768 字大约 3 分钟
2025-12-26
进制转换的核心思想
不同进制之间的转换, 并不是记技巧, 而是规则的自然推导.
无论是二进制/八进制还是十六进制, 所有进制转换都可以归结为两类问题:
- 任意进制 → 十进制
- 十进制 → 任意进制
只要掌握这两种通用方法, 就能完成任意进制之间的转换.
进制不同, 算法相同; 变化的只有基数.
任意进制转换为十进制
位权展开法
将一个数从任意进制转换为十进制, 本质上就是按位权展开求和.
通用公式为: 每一位上的数字 × 基数的对应幂次.
从右向左, 幂次从 0 开始递增.
二进制 → 十进制示例
1010102
展开为
1×25+0×24+1×23+0×22+1×21+0×20=4210
八进制 → 十进制示例
528=5×81+2×80=4210
十六进制 → 十进制示例
在十六进制中:
- A = 10
- B = 11
- C = 12
- D = 13
- E = 14
- F = 15
2A16=2×161+10×160=4210
十进制整数转换为任意进制
除基取余法
将十进制整数转换为任意进制, 使用除基取余, 逆序排列的方法.
步骤如下:
- 用目标进制的基数去除十进制整数.
- 记录余数.
- 对商重复上述过程, 直到商为 0.
- 将所有余数逆序排列, 得到结果.
转换为二进制示例
将十进制数 42 转换为二进制
42÷221÷210÷25÷22÷21÷2=21⋯0=10⋯1=5⋯0=2⋯1=1⋯0=0⋯1
逆序排列余数
1010102
转换为八进制与十六进制
该方法对任何进制都成立, 只需更换基数即可:
- 八进制: 除以 8
- 十六进制: 除以 16
例如: 4210=528=2A16
十进制小数转换为任意进制
乘基取整法
将十进制小数转换为任意进制, 使用乘基取整, 顺序排列的方法.
步骤如下:
- 用目标进制的基数乘以小数.
- 取结果的整数部分作为下一位.
- 保留小数部分继续重复操作.
- 直到小数部分为 0,或达到所需精度.
转换为二进制示例
将0.12510转换为二进制:
0.125×20.25×20.5×2=0.25→0=0.5→0=1.0→1
按顺序排列:
0.0012
关于小数转换的重要提醒
并不是所有十进制小数, 都能在其他进制中被精确表示.
例如:
- 0.110在二进制中是无限循环小数.
- 31在十进制中同样无法精确表示.
这是进制表示的数学特性, 而不是计算错误.
版权所有
版权归属:洱海