R进制表示及互转详解:二进制、八进制、十六进制与十进制转换全攻略
·
R进制表示及互转详解:二进制、八进制、十六进制与十进制转换全攻略
|
🌺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取余法(整数部分)
步骤:
- 用十进制数除以2,记录余数
- 用商继续除以2,记录余数
- 重复直到商为0
- 将余数从下往上排列
示例:将13₁₀转换为二进制
13 ÷ 2 = 6 ... 余1 ↑
6 ÷ 2 = 3 ... 余0 ↑
3 ÷ 2 = 1 ... 余1 ↑
1 ÷ 2 = 0 ... 余1 ↑
结果:1101₂
方法二:乘2取整法(小数部分)
步骤:
- 用小数部分乘以2,记录整数部分
- 取结果的小数部分继续乘以2
- 重复直到小数部分为0或达到所需精度
- 将整数部分从上往下排列
示例:将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 基础练习
- 将101101.011₂转换为十进制
- 将235.75₁₀转换为二进制
- 将10111011.01101₂转换为八进制和十六进制
- 将3F.A₁₆转换为二进制和十进制
7.2 进阶挑战
- 负数的二进制表示(补码)
- 浮点数的IEEE 754标准表示
- 进制转换中的精度损失问题
- 大数进制转换算法优化
八、总结
进制转换是计算机科学的基础技能,掌握这些转换方法能够:
- 深入理解计算机数据表示
- 提高调试和问题分析能力
- 为学习更高级的计算机概念打下基础
- 在算法竞赛和面试中表现出色
记住转换的核心原则:按权展开和除/乘取余/整。通过大量练习,这些转换将变得像十进制算术一样自然。

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


所有评论(0)