1 整数部分
二进制
二进制就是计算机常用的进制,即逢二进一。例如:1010
八进制
八进制即逢八进一。例如:626
十进制
十进制就是我们在计算中常用的进制,所以就不再举例(即逢十进一)。
十六进制
十六进制与其它进制有所不同,在10到15用英文字母进行表示。
上面就是对进制的简单介绍,下面就是对进制转换而进行介绍。
1.1 二进制转八进制
拿二进制数10010110举例
首先需要3个二进制数各划分一个区域,不足时则补零。
我们可以看出该二进制数为八位,我们需要补充一位,即 010 010 110
从左到右依次是:
(计算方法是从右向左依次乘上2的n次幂,n从零开始
)
0 1 0 | 0 1 0 | 1 1 0 |
---|---|---|
0 * 2 2 + 1 * 21 + 0 * 20 = 2 | 0 * 2 2 + 1 * 21 + 0 * 20 = 2 | 1 * 22 + 1 * 21 + 0 * 20 = 6 |
2 | 2 | 6 |
然后合并得到226就是转换后的八进制数。
1.2 二进制转十进制
拿二进制数10010110举例
这里就不需要划分区域,而是直接进行计算。
(计算方法是从右向左依次乘上2的n次幂,n从零开始,^符号表示次幂
)
1 0 0 1 0 1 1 0 |
---|
1 * 27 + 0 * 26+ 0 * 25+1 * 24+ 0 * 23 + 1 * 22+ 1 * 21 + 0 * 20 = 150 |
1.3 二进制转十六进制
拿二进制数100101100举例
二进制转十六进制和二进制转八进制类似,不过转十六进制4个二进制数各划分一个区域,不足也是补零
000100101100
0 0 0 1 | 0 0 1 0 | 1 1 0 0 |
---|---|---|
0 * 23 + 0 * 22 + 0 * 21 + 1 * 20 = 1 | 0 * 23 + 0 * 22 + 1 * 21 + 0 * 20 = 2 | 1 * 23 + 1 * 22 + 0 * 21 + 1 * 20 = 12(十六进制中的C) |
合并为12C
1.4 八进制转二进制
八进制转二进制是二进制转换成八进制的逆过程。(不足时也是补零)
拿八进制数226举例(需要对2取余数,采用倒叙过程
)
2 | 2 | 6 |
---|---|---|
2/2=1(余数为0) | 2/2=1(余数为0) | 6/2=3(余数为0) |
1/2=0(余数为1) | 1/2=0(余数为1) | 3/2=1(余数为1) |
1/2=0(余数为1) | ||
余数为10,不足三位,则补零,为010 | 余数为10,不足三位,则补零,为010 | 余数为110 |
最后合并,最终转换的二进制数为10 010 110
1.5 八进制转十进制
拿八进制数226举例(由右向左依次乘以8的n次幂,n从零开始
)
2 2 6 |
---|
2 * 82 + 2 * 81 + 6 * 80 = 150 |
1.6 八进制转十六进制
八进制不能直接转换为十六进制。
- 可以采用间接转换法来进行转换:
- 1.先把八进制转换为二进制,然后再转换为十六进制。
- 2.先把八进制转换为十进制,然后再转换为十六进制。
拿八进制数226举例,从上面可以看出转换为二进制为1001 0110,然后我们再把它转换为16进制。
划分区域
1 0 0 1 | 0 1 1 0 |
---|---|
1 * 23 + 0 * 22 + 0 * 21 + 1 * 20 = 9 | 0 * 23 + 1 * 22 + 1 * 21 + 0 * 20 = 6 |
合并为96,所以八进制226转换为十六进制为96.
第二种也是一样,小编在这里就不再举例,大家可以试试看,也是一样的结果。
1.7 十进制转二进制
十进制转二进制就是二进制转十进制的逆过程。同样,我们也拿十进制150来举例。
150/2=75 | (余数为0) |
75/2=37 | (余数为1) |
37/2=18 | (余数为1) |
18/2=9 | (余数为0) |
9/2=4 | (余数为1) |
4/2=2 | (余数为0) |
2/2=1 | (余数为0) |
1/2=0 | (余数为1) |
整合为10010110即是转换的二进制。
1.8 十进制转八进制
十进制转八进制和八进制转十进制是互逆的,我们拿150来举例。
150/8=18 | (余数为6) |
18/8=2 | (余数为2) |
2/8=0 | (余数为2) |
整合为226,得到八进制数。
1.9 十进制转十六进制
十进制转十六进制和十六进制转十进制是互逆的,我们拿150来举例。
150/16=9 | (余数为6) |
9/16=0 | (余数为9) |
整合为96,得到十六进制数。
1.10 十六进制转二进制
十六进制转二进制和二进制转十六进制是互逆的,我们拿12C来举例。(不足的位数补零)
1 | 2 | C(转化为12) |
---|---|---|
1/2=0(余数为1) | 2/2=1(余数为0) | 12/2=6(余数为0) |
1/2=0(余数为1) | 6/2=3(余数为0) | |
3/2=1(余数为1) | ||
1/2=0(余数为1) | ||
0001 | 0010 | 1100 |
整合为000100101100
1.11 十六进制转八进制
八进制不能直接转换为十六进制。那么十六进制也不能直接转化为八进制,可以采用间接转换法来进行转换。
- 1.先把十六进制转换为二进制,然后再转换为八进制。
- 2.先把十六进制转换为十进制,然后再转换为八进制。
这里就不再介绍转化的过程,和八进制转化为十六进制一样,这里就是一个逆过程。
1.12 十六进制转十进制
拿十六进制96来举例(由右向左依次乘以16的n次幂,n从零开始)
9 6 |
---|
9 * 161 + 6 * 160 = 150 |
好了,上面就是二进制,八进制,十进制,十六进制之间的转换。我们可以进行分类记忆,并总结规律。
注意:1.我们在将进制数除以2的时候一定要选择逆顺序。
2.在乘以次幂的时候也是从右往左的顺序,由零次幂依次递增。
3.在选择区域的时候一定要看清是转换十六进制还是八进制,否则就会出错,记住不足的位数一定要补零哦
————————————————
版权声明:本文为CSDN博主「mez_Blog」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:link
2 小数部分
2.1 二进制转八进制(小数部分)
上篇进制转换已经说过,二进制三三取数,这里小数部分也是一样。
直接举例如:11.011100101二进制转换为八进制(不足补零)
可以分为
011. | 011 | 100 | 101 |
---|---|---|---|
0 * 22 + 1 * 21 + 1 * 21 = 3. | 0 * 22 + 1 * 21 + 1 * 21 = 3 | 1 * 22 + 0 * 21 + 0 * 21 = 4 | 1 * 22 + 0 * 21 + 1 * 21 = 5 |
3. | 3 | 4 | 5 |
最后得到八进制数3.345
2.2 二进制转十进制(小数部分)
我们在前面的进制转换已经介绍过整数部分的进制转换,下面进行补充小数部分的进制转换
直接通过例子来观察
如:1.01(二进制)转换为十进制
1×20+0×2-1+1×2-2 = 1 + 0 + 0.25 = 1.25(十进制)
2.3 二进制转十六进制(小数部分)
也可以参考八进制和二进制之间的转换,十六进制和二进制之间的转换也是类似的,我们需要选取四个二进制数
1101.01011000
1101. | 0101 | 1000 |
---|---|---|
1 * 23 + 1 * 22 + 0 * 21 + 1 * 20 | 0 * 23 + 1 * 22 + 0 * 21 + 1 * 20 | 1 * 23 + 0 * 22 + 0 * 21 + 0 * 20 |
8+4+1=13(十六进制中13为D) | 5 | 8 |
即十六进制数为D.58
2.4 八进制转二进制(小数部分)
八进制转二进制与二进制转八进制相反,如下所示
八进制数1.65
1. | 6 | 5 |
---|---|---|
001. | 110 | 101 |
即转换为二进制数1.110101
2.5 八进制转十进制(小数部分)
还是以同样的数举例,供大家类比其计算方法,八进制数211.4,转换成十进制
211.4
2 * 82 + 1 * 81 + 1 * 80 + 4 * 8-1 = 128 + 8 + 1 + 0.5 = 137.5
这就是十进制数137.5啦。
2.6 八进制转十六进制(小数部分)
八进制不能直接转换为十六进制。可以采用间接转换法来进行转换。
- 1.先把八进制转换为二进制,然后再转换为十六进制。
- 2.先把八进制转换为十进制,然后再转换为十六进制。
2.7 十进制转二进制(小数部分)
十进制的小数转换为二进制的小数 采用“乘2取整,顺序排列”
法。
就是用2乘以十进制的小数,然后把得到的乘积的整数部分取出,再用2乘以余下的小数部分,然后取整,依次循环这个过程,直到乘积中的小数部分为零,或者达到所要求的精度即可。这里需要注意!!!与整数部分不同的是,最后要把取出的部分顺序排列(与整数部分相反)。
下面以实例来观察
如:将十进制数135.375转换为二进制数(这里直接以整数和小数部分的实例举证)
需要分为两部分进行计算:整数部分和小部分
整数部分:
135/2=67 | 余数1 |
---|---|
67/2=33 | 余数1 |
33/2=16 | 余数1 |
16/2=8 | 余数0 |
8/2=4 | 余数0 |
4/2=2 | 余数0 |
2/2=1 | 余数0 |
1/2=0 | 余数1 |
即10000111
小数部分:
0.375×2=0.75 | 整数部分0 |
---|---|
0.75×2=1.5 | 整数部分1 |
0.5×2=1.0(这里小数部分为0,结束) | 整数部分1 |
即小数部分为011(注意:这里和整数部分不同,一定是正序的哦!!!)
最后整数部分和小数部分结合
最后结果为10000111.011(即为求得的二进制数)
2.8 十进制转八进制(小数部分)
十进制转八进制,也可以类比一下十进制转二进制,比较类似
十进制数137.5
也分为整数部分和小数部分
整数部分:
137/8=17 | 余数1 |
---|---|
17/8=2 | 余数1 |
2/8=0 | 余数2 |
即为八进制数211
小数部分:
0.5×8=4.0 | 取整数4 |
---|
整理合并,最终为八进制数211.4
2.9 十进制转十六进制(小数部分)
同样的例子,我们还是拿十进制数163.3125来转换成十六进制
163 . 3125
首先还是划分成整数部分和小数部分
整数部分163
163/16=10 | 余数3 |
---|---|
10/16=0 | 余数10(这里要注意,既然是16进制,这里的10-15就是A-F,这里的10就是十六进制的A) |
所以我们得到的整数部分是A3
小数部分0.3125
0.3125*16=5.0 | 直接取整数部分5(此时小数部分为0,结束运算,如果不为零则继续作乘法运算,直至小数部分为0,如果是多个运算取整应该选正序哦,正序,正序,重要的地方说三遍) |
2.10 十六进制转二进制(小数部分)
十六进制数F.B5
F. | B | 5 |
---|---|---|
1111. | 1011 | 0101 |
即转换为二进制1111.10110101
2.11 十六进制转八进制(小数部分)
十六进制转换成八进制也是一样的,
- 1.先把十六进制转换为二进制,然后再转换为八进制。
- 2.先把十六进制转换为十进制,然后再转换为八进制。
2.12 十六进制转十进制(小数部分)
十六进制转十进制
十六进制数:A3.5
16进制中的A就是十进制中的10,那么计算方法如下:
A 3 . 5 |
---|
10 * 161 + 3 * 160 + 0.5 * 16-1 = 163.3125 |
版权声明:本文为CSDN博主「mez_Blog」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:link