🌺The Begin🌺点点关注,收藏不迷路🌺

一、引言:为什么需要了解进制转换?

在计算机科学中,进制转换是最基础也是最重要的概念之一。计算机内部使用二进制(0和1)进行数据存储和处理,而人类更习惯使用十进制。此外,八进制和十六进制作为二进制的紧凑表示形式,在编程和系统调试中广泛应用。掌握进制转换技能对于理解计算机工作原理、进行低级编程和解决算法问题至关重要。

二、核心概念解析

2.1 什么是进制?

  • R进制:使用R个基本符号表示数值的系统
  • 权值:每位数字代表的实际值 = 数字 × 基数的位置次方
  • 基数:进制系统中使用的基本数字个数

2.2 常见进制系统

进制 基数 基本符号 主要应用
二进制 2 0, 1 计算机内部表示
八进制 8 0-7 Unix文件权限
十进制 10 0-9 日常使用
十六进制 16 0-9, A-F 内存地址、颜色代码

三、二进制与十进制互转

3.1 二进制转十进制:按权展开法

原理:将二进制数每一位的值乘以2的相应次方,然后求和

公式
在这里插入图片描述

整数部分转换示例

二进制:1101₂
计算:1×2³ + 1×2² + 0×2¹ + 1×2⁰
     = 1×8 + 1×4 + 0×2 + 1×1
     = 8 + 4 + 0 + 1
     = 13₁₀

小数部分转换示例

二进制:0.101₂
计算:1×2⁻¹ + 0×2⁻² + 1×2⁻³
     = 1×0.5 + 0×0.25 + 1×0.125
     = 0.5 + 0 + 0.125
     = 0.625₁₀

3.2 十进制转二进制

方法一:除2取余法(整数部分)

步骤

  1. 用十进制数除以2,记录余数
  2. 用商继续除以2,记录余数
  3. 重复直到商为0
  4. 将余数从下往上排列

示例:将13₁₀转换为二进制

13 ÷ 2 = 6 ... 余1 ↑
6  ÷ 2 = 3 ... 余0 ↑
3  ÷ 2 = 1 ... 余1 ↑
1  ÷ 2 = 0 ... 余1 ↑
结果:1101₂
方法二:乘2取整法(小数部分)

步骤

  1. 用小数部分乘以2,记录整数部分
  2. 取结果的小数部分继续乘以2
  3. 重复直到小数部分为0或达到所需精度
  4. 将整数部分从上往下排列

示例:将0.625₁₀转换为二进制

0.625 × 2 = 1.25 ... 整数部分1,取0.25
0.25  × 2 = 0.5  ... 整数部分0,取0.5
0.5   × 2 = 1.0  ... 整数部分1,取0.0
结果:0.101₂

四、二进制与八进制互转

4.1 二进制转八进制

规则:从二进制小数点开始,向左每3位一组(整数部分),向右每3位一组(小数部分),不足3位的补0

转换表

二进制 八进制
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7

示例

二进制:1101011.1011₂

分组:001 101 011 . 101 100
       ↓   ↓   ↓    ↓   ↓
       1   5   3  .  5   4
       
结果:153.54₈

说明:
整数部分:1101011 → 补0成001 101 011
小数部分:1011 → 补0成101 100

4.2 八进制转二进制

规则:将八进制数的每一位转换为对应的3位二进制数

示例

八进制:347.52₈

3 → 011
4 → 100
7 → 111
. → .
5 → 101
2 → 010

结果:011100111.101010₂
简化:11100111.10101₂

五、二进制与十六进制互转

5.1 二进制转十六进制

规则:从二进制小数点开始,向左每4位一组(整数部分),向右每4位一组(小数部分),不足4位的补0

转换表

二进制 十六进制 二进制 十六进制
0000 0 1000 8
0001 1 1001 9
0010 2 1010 A
0011 3 1011 B
0100 4 1100 C
0101 5 1101 D
0110 6 1110 E
0111 7 1111 F

示例

二进制:1101011.1011₂

分组:0110 1011 . 1011
       ↓    ↓     ↓
       6    B  .   B
       
结果:6B.B₁₆

说明:
整数部分:1101011 → 补0成0110 1011
小数部分:1011 → 正好4位

5.2 十六进制转二进制

规则:将十六进制数的每一位转换为对应的4位二进制数

示例

十六进制:3A7.D4₁₆

3 → 0011
A → 1010
7 → 0111
. → .
D → 1101
4 → 0100

结果:001110100111.11010100₂
简化:1110100111.110101₂

六、十进制与其他进制互转

6.1 十进制转R进制(通用方法)

整数部分:除R取余,逆序排列
小数部分:乘R取整,顺序排列

示例:将29.375₁₀转换为八进制

整数部分转换(除8取余):

29 ÷ 8 = 3 ... 余5 ↑
3  ÷ 8 = 0 ... 余3 ↑
整数部分:35₈

小数部分转换(乘8取整):

0.375 × 8 = 3.0 ... 整数部分3,小数部分0
小数部分:0.3₈

最终结果:29.375₁₀ = 35.3₈

6.2 R进制转十进制(通用方法)

公式:按权展开求和

在这里插入图片描述

示例:将35.3₈转换为十进制

整数部分:3×8¹ + 5×8⁰ = 24 + 5 = 29
小数部分:3×8⁻¹ = 3×0.125 = 0.375
结果:29.375₁₀

七、练习题与自我检测

7.1 基础练习

  1. 将101101.011₂转换为十进制
  2. 将235.75₁₀转换为二进制
  3. 将10111011.01101₂转换为八进制和十六进制
  4. 将3F.A₁₆转换为二进制和十进制

7.2 进阶挑战

  1. 负数的二进制表示(补码)
  2. 浮点数的IEEE 754标准表示
  3. 进制转换中的精度损失问题
  4. 大数进制转换算法优化

八、总结

进制转换是计算机科学的基础技能,掌握这些转换方法能够:

  1. 深入理解计算机数据表示
  2. 提高调试和问题分析能力
  3. 为学习更高级的计算机概念打下基础
  4. 在算法竞赛和面试中表现出色

记住转换的核心原则:按权展开除/乘取余/整。通过大量练习,这些转换将变得像十进制算术一样自然。


在这里插入图片描述


🌺The End🌺点点关注,收藏不迷路🌺
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐