进制转换:二进制、八进制、十进制、十六进制的转换方法
在计算机领域,二进制(B)、八进制(O)、十进制(D)和十六进制(H)是最常用的数制。掌握它们之间的转换规则,是理解计算机数据存储和运算的基础。以下是详细的转换方法:
十进制与其他进制的转换
1. 十进制转二进制(除 2 取余法)
核心步骤:将十进制数反复除以 2,记录每次的余数,直到商为 0,最后将余数从后往前排列。
示例:将十进制数94转为二进制
计算过程:
1
2
3
4
5
6
794 ÷ 2 = 47 余数 0
47 ÷ 2 = 23 余数 1
23 ÷ 2 = 11 余数 1
11 ÷ 2 = 5 余数 1
5 ÷ 2 = 2 余数 1
2 ÷ 2 = 1 余数 0
1 ÷ 2 = 0 余数 1
- 结果:余数从后往前排列 →
1011110(即94D = 1011110B)。
2. 十进制转八进制(除 8 取余法)
核心步骤:类似二进制转换,将十进制数反复除以 8,记录余数,最后从后往前排列。
示例:将十进制数156转为八进制
计算过程:
1
2
3156 ÷ 8 = 19 余数 4
19 ÷ 8 = 2 余数 3
2 ÷ 8 = 0 余数 2
- 结果:余数从后往前排列 →
234(即156D = 234O)。
3. 十进制转十六进制(除 16 取余法)
核心步骤:除以 16 取余,余数为 10~15 时分别用 A~F 表示,最后从后往前排列。
示例:将十进制数250转为十六进制
计算过程:
1
2250 ÷ 16 = 15 余数 10(A)
15 ÷ 16 = 0 余数 15(F)
- 结果:余数从后往前排列 →
FA(即250D = FAH)。
其他进制转十进制(按权展开法)
核心步骤:将数的每一位乘以基数的 “位权”(从右往左,位权从 0 开始递增),再求和。
1. 二进制转十进制
示例:将二进制数1011.01转为十进制
- 整数部分:
1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 8 + 0 + 2 + 1 = 11 - 小数部分:
0×2⁻¹ + 1×2⁻² = 0 + 0.25 = 0.25 - 结果:
11 + 0.25 = 11.25(即1011.01B = 11.25D)。
2. 八进制转十进制
示例:将八进制数34.6转为十进制
- 整数部分:
3×8¹ + 4×8⁰ = 24 + 4 = 28 - 小数部分:
6×8⁻¹ = 6×0.125 = 0.75 - 结果:
28 + 0.75 = 28.75(即34.6O = 28.75D)。
3. 十六进制转十进制
示例:将十六进制数A3.C转为十进制
- 整数部分:
10×16¹ + 3×16⁰ = 160 + 3 = 163 - 小数部分:
12×16⁻¹ = 12×0.0625 = 0.75 - 结果:
163 + 0.75 = 163.75(即A3.CH = 163.75D)。
二进制与八进制、十六进制的快速转换
由于 8 和 16 都是 2 的整数次幂((8=2³),(16=2⁴)),二进制与它们的转换可通过 “分组法” 快速完成。
1. 二进制转八进制(3 位一组)
核心步骤:
- 整数部分:从右往左每 3 位一组,不足 3 位则在左边补 0;
- 小数部分:从左往右每 3 位一组,不足 3 位则在右边补 0;
- 每组对应一个八进制数(0~7)。
示例:将二进制数10110101.11转为八进制
- 整数部分分组:
10 110 101→ 补 0 为010 110 101→ 对应八进制2 6 5 - 小数部分分组:
11→ 补 0 为110→ 对应八进制6 - 结果:
265.6(即10110101.11B = 265.6O)。
2. 二进制转十六进制(4 位一组)
核心步骤:
- 整数部分:从右往左每 4 位一组,不足 4 位则在左边补 0;
- 小数部分:从左往右每 4 位一组,不足 4 位则在右边补 0;
- 每组对应一个十六进制数(0~9,A~F)。
示例:将二进制数1101101.0101转为十六进制
- 整数部分分组:
1101 101→ 补 0 为0110 1101→ 对应十六进制6 D - 小数部分分组:
0101→ 对应十六进制5 - 结果:
6D.5(即1101101.0101B = 6D.5H)。
3. 八进制 / 十六进制转二进制(反向分组)
核心步骤:将每一位八进制数转为 3 位二进制数,每一位十六进制数转为 4 位二进制数,再拼接。
示例 1:八进制57.3转二进制
5→101,7→111,3→011→ 拼接为101111.011B。
示例 2:十六进制E8.A转二进制
E→1110,8→1000,A→1010→ 拼接为11101000.1010B。
v1.3.10