文章目录

进制转换

由 GS 发布

进制转换简明指南

  1. 其他进制 → 十进制 (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)₁₀

  1. 十进制 → 其他进制 (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)₂

  1. 二进制 ↔ 八进制 / 十六进制
    方法:利用 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)₂

  1. 八进制 ↔ 十六进制
    方法:通常以二进制作为中间桥梁进行转换。

先将八进制数转换为二进制。

再将得到的二进制数转换为十六进制(反之亦然)。

示例 (八进制 274 → 十六进制):

(274)₈ → (010 111 100)₂ → (10111100)₂

(10111100)₂ → (1011 1100)₂ → (BC)₁₆

结果:(274)₈ = (BC)₁₆

总结口诀
十转 R:整数除基倒取余,小数乘基正取整。

R 转十:按权展开再求和。

二转八/十六:三位一并,四位一并。

八/十六转二:一拆三位,一拆四位。


0条评论

发表评论