进制之间的转换

1 整数部分

二进制
二进制就是计算机常用的进制,即逢二进一。例如:1010

八进制
八进制即逢八进一。例如:626

十进制
十进制就是我们在计算中常用的进制,所以就不再举例(即逢十进一)。

十六进制
十六进制与其它进制有所不同,在10到15用英文字母进行表示。
在这里插入图片描述
上面就是对进制的简单介绍,下面就是对进制转换而进行介绍。

1.1 二进制转八进制

拿二进制数10010110举例

首先需要3个二进制数各划分一个区域,不足时则补零
我们可以看出该二进制数为八位,我们需要补充一位,即 010 010 110

从左到右依次是:
计算方法是从右向左依次乘上2的n次幂,n从零开始

0 1 00 1 01 1 0
0 * 2 2 + 1 * 21 + 0 * 20 = 20 * 2 2 + 1 * 21 + 0 * 20 = 21 * 22 + 1 * 21 + 0 * 20 = 6
226

然后合并得到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  10  0  1  01  1  0  0
0 * 23 + 0 * 22 + 0 * 21 + 1 * 20 = 10 * 23 + 0 * 22 + 1 * 21 + 0 * 20 = 21 * 23 + 1 * 22 + 0 * 21 + 1 * 20 = 12(十六进制中的C)

合并为12C

1.4 八进制转二进制

八进制转二进制是二进制转换成八进制的逆过程。(不足时也是补零

拿八进制数226举例(需要对2取余数,采用倒叙过程

226
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    10    1    1    0
1 * 23 + 0 * 22 + 0 * 21 + 1 * 20 = 90 * 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来举例。(不足的位数补零

12C(转化为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)
000100101100

整合为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.011100101
0 * 22 + 1 * 21 + 1 * 21 = 3.0 * 22 + 1 * 21 + 1 * 21 = 31 * 22 + 0 * 21 + 0 * 21 = 41 * 22 + 0 * 21 + 1 * 21 = 5
3.345

最后得到八进制数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.01011000
1 * 23 + 1 * 22 + 0 * 21 + 1 * 200 * 23 + 1 * 22 + 0 * 21 + 1 * 201 * 23 + 0 * 22 + 0 * 21 + 0 * 20
8+4+1=13(十六进制中13为D)58

即十六进制数为D.58

2.4 八进制转二进制(小数部分)

八进制转二进制与二进制转八进制相反,如下所示

八进制数1.65

1.65
001.110101

即转换为二进制数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.B5
1111.10110101

即转换为二进制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

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值