二进制、八进制、十进制、十六进制转化

本文主要说明一下这几个进制整数之间的转化方法,对于其他运算法则之类的或者还有深入的知识以及其他的进制不做介绍。

首先介绍下各个进制的组成和运算规则:

十进制:人们常用的是十进制。它由0到9十个基本数字组成,它是按“逢十进一”(实际上R进制就逢R进一)的规则进行的。

二进制:由0和1组成,它的运算规律是“逢二进一”。

八进制:由于二进制数据的基R(2)较小,所以二进制的书写和阅读不方便。因此在小型机中引入了八进制。由0到七组成,并且每个数码正好对应三位二进制数据。运算规律是“逢八进一”。

十六进制:它由十六个字符0到9以及A,B,C,D,E,F(分别表示十进制数中的10到15)组成,运算规律是逢十六进一。

进制转换: 

十进制转化成R进制

a.整数转换:一个十进制数转化成R进制通常采用除R取余法,即用R连续处十进制数,直到商为0,然后逆序排列余数即可得到。

b.小数转换:用R去乘给出的十进制的小数部分,取得乘积的整数部分作为转换后R进制小数点后第一位数字,然后再用R去乘上一步乘数的小数部分,然后取新乘积的整数部分作为转换后R进制小数的第低一位数字,重复操作一直到乘积为0,或已经得到要求精度位数为止。

R进制转化成十进制:任意R进制数据按权位展开,然后让当前权位的数乘R的权位次方(小数位和整数位没区别)。

八进制转化成二进制:上面已经说过八进制每个数码正好对应三位二进制数据,所以八进制转化成二进制用取一分三法,即将一位八进制数分解成三位二进制数,用三位二进制按权相加去凑这位八进制数,小数点位置照旧。例:

将八进制数67.54转换为二进制数为110111.101100,即110111.1011
大家从上面这道题可以看出,计算八进制转换为二进制
首先,将八进制按照从左到右,每位展开为三位,小数点位置不变
然后,按每位展开为4、2、1三位去做凑数,即a×22+ b×21 +c×20=该位上的数(a=1或者a=0,b=1或者b=0,c=1或者c=0),将abc排列就是该位的二进制数
接着,将每位上转换成二进制数按顺序排列
最后,就得到了八进制转换成二进制的数字。
注意: 大家在做添0和去0的时候要注意,是在小数点最左边或者小数点的最右边(即整数的最高位和小数的最低位)才能添0或者去0

二进制转换为八进制 :取三合一法,即从二进制的小数点为分界点,向左(向右)每三位取成一位,接着将这三位二进制按权相加,得到的数就是一位八位二进制数,然后,按顺序 进行排列,小数点的位置不变,得到的数字就是我们所求的八进制数。如果取到最高(最低)位时候,如果无法凑足三位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足三位。例 :
①将二进制数101110.101转换为八进制     拆分为:101   110    101

得到结果:将101110.101转换为八进制为56.5

② 将二进制数1101.1转换为八进制   拆分为:001   101    100

得到结果:将1101.1转换为八进制为15.4 

将十六进制转换为二进制 :同八进制类似,上面已经提到,十六进制每个数对应二进制四位数据,所以这里采用取一分四法,即将一位十六进制数分解成四位二进制数,用四位二进制按权相加去凑这位十六进制数,小数点位置照旧。例:

将十六进制6E.2转换为二进制数 :
因此得到结果:将十六进制6E.2转换为二进制为0110 1110.0010即110110.001 

二进制转换为十六进制 :取四合一法,即从二进制的小数点为分界点,向左(向右)每四位取成一位,接着将这四位二进制按权相加,得到 的数就是一位十六位二进制数,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的十六进制数。如果取到最高(最 低)位时候,如果无法凑足四位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足四位。

①例:将二进制11101001.1011转换为十六进制

得到结果:将二进制1110 1001.1011转换为十六进制为E9.B


② 例:将101011.101(0010   1011.1010)转换为十六进制

因此得到结果:将二进制101011.101转换为十六进制为2B.A 

八进制与十六进制的转换 一般不能互相直接转换,一般是将八进制(或十六进制)转换为二进制,然后再将二进制转换为十六进制(或八进制),小数点位置不变。那么相应的转换请参照上面二进制与八进制的转换和二进制与十六进制的转  

上面参照了一些资料,也有一些事我个人的理解,有错误的地方请指出,不喜勿喷



转载于:https://my.oschina.net/u/912681/blog/131954

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值