进制转换简明指南
- 其他进制 → 十进制 (R → 10)
方法:按权展开,相加求和。
规则:每一位上的数字乘以其位权(基数的次方),然后将所有乘积相加。
公式:(abc.xyz)ₙ = an² + bn¹ + cn⁰ + xn⁻¹ + yn⁻² + zn⁻³
要点:
个位(小数点左边第一位)的位权是基数的 0 次方。
向左,次方依次 +1;向右(小数部分),次方依次 -1。
示例:
(1011.1)₂ = 12³ + 02² + 12¹ + 12⁰ + 1*2⁻¹ = 8 + 0 + 2 + 1 + 0.5 = (11.5)₁₀
(75.4)₈ = 78¹ + 58⁰ + 4*8⁻¹ = 56 + 5 + 0.5 = (61.5)₁₀
(AF.C)₁₆ = 1016¹ + 1516⁰ + 12*16⁻¹ = 160 + 15 + 0.75 = (175.75)₁₀
- 十进制 → 其他进制 (10 → R)
方法:整数部分和小数部分分别转换。
A. 整数部分:除以基数,取余,逆序排列。
规则:将十进制整数不断除以目标基数,记录每次的余数,直到商为0。最后将余数从最后一个到第一个(从下往上) 排列。
B. 小数部分:乘以基数,取整,顺序排列。
规则:将十进制小数不断乘以目标基数,记录每次 multiplication 后得到的整数部分,然后继续对新的小数部分进行操作,直到小数部分为0或达到所需精度。最后将整数部分从第一个到最后一个(从上往下) 排列。
示例(十进制 11.625 → 二进制):
整数部分 (11):
11 / 2 = 5 ... 余 1 (个位)
5 / 2 = 2 ... 余 1
2 / 2 = 1 ... 余 0
1 / 2 = 0 ... 余 1
逆序排列余数:(1011)₂
小数部分 (0.625):
0.625 * 2 = 1.25 → 取整 1
0.25 * 2 = 0.5 → 取整 0
0.5 * 2 = 1.0 → 取整 1
顺序排列整数:(.101)₂
合并:(11.625)₁₀ = (1011.101)₂
- 二进制 ↔ 八进制 / 十六进制
方法:利用 8=2³ 和 16=2⁴ 的关系,按位分组转换。
A. 二进制 → 八进制 (Bin → Oct)
规则:以小数点为界,向左和向右每 3 位一组分成一组(不足3位的用0补足)。然后将每一组3位二进制数转换为对应的1位八进制数。
示例:(10111010.11)₂
分组:010 111 010 . 110 (补0)
转换:2 7 2 . 6
结果:(272.6)₈
B. 八进制 → 二进制 (Oct → Bin)
规则:将每一位八进制数展开成对应的 3 位二进制数(位数不足的用0补足),然后按顺序连接即可。
示例:(531.4)₈
转换:5→101 3→011 1→001 . 4→100
结果:(101011001.1)₂ (高位开头的0可省略)
C. 二进制 → 十六进制 (Bin → Hex)
规则:以小数点为界,向左和向右每 4 位一组分成一组(不足4位的用0补足)。然后将每一组4位二进制数转换为对应的1位十六进制数(10-15用A-F表示)。
示例:(1111101011.011)₂
分组:0011 1110 1011 . 0110 (补0)
转换:3 E B . 6
结果:(3EB.6)₁₆
D. 十六进制 → 二进制 (Hex → Bin)
规则:将每一位十六进制数展开成对应的 4 位二进制数(位数不足的用0补足),然后按顺序连接即可。
示例:(A7.F)₁₆
转换:A→1010 7→0111 . F→1111
结果:(10100111.1111)₂
- 八进制 ↔ 十六进制
方法:通常以二进制作为中间桥梁进行转换。
先将八进制数转换为二进制。
再将得到的二进制数转换为十六进制(反之亦然)。
示例 (八进制 274 → 十六进制):
(274)₈ → (010 111 100)₂ → (10111100)₂
(10111100)₂ → (1011 1100)₂ → (BC)₁₆
结果:(274)₈ = (BC)₁₆
总结口诀
十转 R:整数除基倒取余,小数乘基正取整。
R 转十:按权展开再求和。
二转八/十六:三位一并,四位一并。
八/十六转二:一拆三位,一拆四位。