十进制,二进制,十六进制,八进制之间的数制转换

  前言:在日常生活中,我们经常用的数制有12进制,如一年12个月,七进制,如一个星期7天等,以及计数常用的十进制,即“逢十进一,借一当十”,需要用到0~9这10个数字。但是,在计算机底层是用逻辑电路实现的,即开和关,因此就引入了二进制,即“逢二进一,借一当二”,用到的数字是0和1,实现简单。虽然对于计算机底层简单,但是对于我们人来说,并不敏感,比如1000,用二进制表示是0011 1110 1000,十六进制表示为3E8(如图一所示),所以十六进制和八进制的引入就很好的简化了二进制的书写,便于人的理解与计算。在计算机中,二进制数用B(Binary)表示,十进制用D(Decimal)表示,十六进制用H(Hexadecimal)表示,八进制用O(Octal)表示,由于O与0相似,所以也可以用Q表示。注意:在计算机中一般默认使用十进制,故十进制也可不标出符号,但是计算机底层识别的只能是二进制。

一、r进制与十进制之间的转换

方法:按权展开求和

1.二进制转换为十进制

从小数点开始向左,第一位权重为2^0,第二位为2^1,以此类推,从小数点向右,第一位权重为2^-1,第二位为2^-2,以此类推。

【例】110.11B=1*2^2 +1 * 2^1+0*2^0+1 *2^-1+1 *2^-2=6.75D

2.十六进制转换为十进制

从小数点开始向左,第一位权重为16^0,第二位为16^1,以此类推,从小数点向右,第一位权重为16^-1,第二位为16^-2,以此类推。

【例】1B.E5H=1*16^1+B *16^0+E *16^-1+5 *16^-2

3.八进制转换为十进制

从小数点开始向左,第一位权重为8^0,第二位为8^1,以此类推,从小数点向右,第一位权重为8^-1,第二位为8^-2,以此类推。

【例】34.56Q=3*8^1+4 *8^0+5 *8^-1+6 *8^-2

二、十进制与r进制之间的转换

将十进制数转换为r进制数,整数部分和小数部分的转换方法是不同的。

方法:整数部分:除r取余法。小数部分:乘r取整法

整数部分:

①整数部分的转换:除r取余法。将十进制数除以基数r.得到一个商和一个余数;再将商除以基数r,又得到一个商和一个余数:继续这一过程,直到商等于0为止。将每次得到的余数连起来,就是对应r进制数的各位数字。其中,第一次得到的余数为r进制数的最低位,最后得到的余数为r进制数的最高位。

1.十进制转二进制

【例】将十进制数25转换为二进制数

所以25D =11001B

2.十进制转十六进制

【例】将十进制97转换为十六进制数

 所以97D=61H

十进制转八进制也是同理。


小数部分

②小数部分的转换:乘r取整法。 用基数r乘以十进制小数,得到整数和小数部分;再用基数r乘以小数部分,又得到-个整数和一个小数部分;继续这一过程,直到余下的小数部分为0或满足精度要求为止。 最后将每次得到的整数部分按先后顺序从左到右排列,即得到所对应r进制小数。

【例】 将十进制小数0.8125转换为二进制小数。

十进制的小数部分转换成八进制或十六进制即把上例中的2变为8或16即可。

三、r进制之间的转换

1.二进制转八进制

由于2^3=8,所以在转换时,从小数点向俩侧出发,每三位一组进行划分即可。若小数点左侧的位数不是3的整数倍,则在数的最左侧补零;若小数点右侧的位数不是3的整数倍,则在数的最右侧补零。然后将每3位二进制数转换为对应的一位八进制数,即为二进制数对应的八进制数。

【例】 将二进制数(11010110.11)₂转换为八进制数。

 

【例】 将八进制数(25.4)₈转换为二进制数。

【例】 将二进制数(111101.101)₂转换为十六进制数。

 

 【例】 将十六进制数(1FC7.958)₁₆2 转换为二进制数。


好了,数制之间的转换就介绍到这里了,如果对您有帮助,麻烦点个赞。谢谢!

  • 18
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值