目录
一、目标
理解二进制/八进制/十进制/十六进制的原理
掌握各种不同的进制间的转换方法
二、学习说明背景
进制转换是作为一个程序员的必备技能,它是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本因素“基数”与“位权”构成。基数是指具体的量值。位权是指,进位制中"位对应的单位值.实际开发中的多媒体数据采集、分割、压缩、编解转码、传输、纠错、合并等工作都与它息息相关。
三、学习内容
学习之前,先留下习题:
练习:10011B+45D=___H?
让我们带着问题学习,练习过程及答案在文末.
1、进制定义
二进制:是指在数学和数字电路中以2为基数的记数系统,二进制只有0和1两个数字符号,其运算规律是逢2进1,例如101101。为了与其他进制区别,二进制数的后缀都用大写字母B,例如101101B
八进制:一种以8为基数的计数法,采用0,1,2,3,4,5,6,7这八个数字符号,其运算规律是逢8进1,例如77。为了与其他进制区别,八进制数的后缀都用大写字母O(不是数字0),例如77O
十进制:一种以10为基数的计数法,采用0,1,2,3,4,5,6,7,8,9这十个数字符号,其运算规律是逢10进1,例如88。为了与其他进制区别,十进制数的后缀都用大写字母D,例如88D
十六进制:一种以16为基数的计数法,采用0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F这十六个数字和字母符号,其运算规律是逢16进1,例如9527。为了与其他进制区别,十六进制数的后缀都用大写字母H,例如9527H
2、各进制间的转换方法
2.1 二进制转其他进制
- 二进制转十进制:采用位置计数法,其位权是以2为底的幂,顺序从右到左,从0开始计数。例如二进制数1011B = 1 * 23 + 0 * 22 + 1 * 21 + 1 * 20 = 11D

- 二进制转八进制:采用三合一法,即从二进制的小数点为分界点,向左(或向右)每三位对应八进制的一位,不足三位的前面补0,例如:10110011B = (0)10 110 011 = 263O

- 二进制转十六进制:采用四合一法,即从二进制的小数点为分界点,向左(或向右)每四位对应十六进制的一位,不足四位的前面补0,例如:10110011B = 1011 0011 = B3H

2.2 十进制转其他进制
- 十进制转二进制:整数采用“除2倒取余”,小数采用“乘2取整”。例如十进制数135转换成二进制时,将135除以2,得余数,直到不能整除,然后再将余数从下至上倒取,结果为10000111B
- 十进制转八进制:和转二进制的方法类似,整数采用“除8倒取余”,小数采用“乘8取整”。例如十进制数10转换成二进制时,将10除以8,得余数,直到不能整除,然后再将余数从下至上倒取,结果为12O
- 十进制转十六进制:思路和转二进制、八进制一样,十进制数25转换成十六进制时,结果为19H
2.3 八进制转其他进制
- 八进制转二进制:和二进制转八进制的方法相反,采用三合一法,例如:263O = 010 110 011B
- 八进制转十进制:和二进制转十进制的方法一样,采用位置计数法,其位权是以8为底的幂,顺序从右到左,从0开始计数。例如八进制数26(八进制) = 2 * 81 + 6 * 80 = 22D

- 八进制转十六进制:不能直接转换,需要先转成二进制,再将二进制转成十六进制
2.4 十六进制转其他进制
- 十六进制转二进制:和二进制转十六进制的方法相反,采用四合一法,例如:B3H = 1011 0011 = 10110011B
- 十六进制转八进制:不能直接转换,需要先转成二进制,再将二进制转成八进制
- 十六进制转十进制:和二进制转十进制的方法一样,采用位置计数法,其位权是以16为底的幂,顺序从右到左,从0开始计数。例如十六进制数26H = 2 * 161 + 6 * 160 = 38D

2.5 小数进制转换(求x进制时,乘x取整,正序取值)
以10进制的18.375转换2进制为例
先算整数部分:18

再计算小数部分:0.375

所以结合整数部分与小数部分
18.375(10)=10010.011(2)
四、学习总结
这是制作的归纳表格,进制转换在不同情况下的方法不同,初学容易混乱,以下表格可以参考,对比不同以达到快速记忆的目标.
| 二进制 | 八进制 | 十进制 | 十六进制 | ||||
| 区别 | 末位为B | 末位为O | 末位为D | 末位为H | |||
| 转二进制 | / | 三合一法(逆用) | 整数:除二倒取余 | 四合一计数法(逆用) | |||
| 小数:乘二取整 | |||||||
| 转八进制 | 三合一法 | / | 整数:除八倒取余 | 先转二进制(四合一逆用) | |||
| 小数:乘八取整 | 再转八进制(三合一) | ||||||
| 转十进制 | 位置计数法 | 位置计数法 | / | 位置计数法 | |||
| 转十六进制 | 四合一计数法 | 先转二进制(三合一逆用) | 整数:除十六倒取余 | / | |||
| 再转十六进制(四合一) | 小数:乘十六取整 |
五.习题&答案及求解过程:
回到一开始的问题:10011B+45D=?
以下是求解思路:
先统一进制,将二进制数转换为十进制,并求和

运用方法:除十六倒取余,求得结果为40H

以上就是问题的解答过程了.
此外我还带来了我学习时做过的三道题和它们的求解思路,解答思路依旧在最后.
1. 二进制数10110B+十进制数78D=?(结果转为十六进制数)
2. 二进制数10010B+十进制数37D=?(结果转为十六进制数)
3. 二进制数(111 1000 0000 1001)B转化为十六进制数求结果.
1 解:

2. 解:

3. 解:

本文详细介绍了二进制、八进制、十进制和十六进制之间的转换方法,包括二进制转其他进制、十进制转其他进制以及八进制和十六进制的转换。通过实例解析了转换过程,特别强调了进制转换在编程中的重要性,并提供了习题及解答,帮助读者巩固学习。
875

被折叠的 条评论
为什么被折叠?



