用按权展开法可以将任意二进制数转换成十进制数。所谓按权展开法就是将各位二进制数的权值乘上系数,再相加即可得相应的十进制数。
例如:将二进制数(11010.011)2转换为十进制数。
为了方便利用按权展开法进行二进制数转换成十进制数,应熟记表1-2。
表1-2 常用二进制的位权
2.十进制-二进制数转换
十进制数转换成二进制数需要分两部分转换:整数部分和小数部分。
整数部分采用除2取余法,其步骤如下:
(1)给定的十进制数除以2,余数作为二进制数的最低位LSB(Least Significant Bit)。
(2)将第(1)步的商再除以2,余数作为二进制数的次低位。
(3)重复第(2)步,直至商为0,最后的余数作为二进制数的最高位MSB(Most Sig⁃nificant Bit)。
例如:将十进制数(13)10转换为二进制数。
因此,(13)10=(1101)2。
小数部分采用乘2取整法。所谓乘2取整法是将小数部分逐次乘以2,取乘积的整数部分作为二进制数的各位,乘积的小数部分继续乘以2,直至乘积为0或到一定的精度。
例如:将十进制数0.1875转换为二进制数。
因此,(0.1875)10=(0.0011)2。
例如:将0.542十进制数转换为误差不大于2-6的二进制数。
至此,已满足误差不大于2-6的精度要求,因此(0.542)10=(0.100101)2。
将一个带有整数和小数的十进制数转换为二进制数时,只要将整数部分和小数部分分别转换,然后将结果合并起来即可。
例如:将十进制数13.542转换为二进制数,误差不大于2-6的精度。
解:(13.542)10=(1101.100101)2。
八进制、十六进制数转换为十进制数,与二进制-十进制转换的方法一致,按照“按权展开相加”的方法进行即可。
例如:
4.十进制-八进制、十六进制数转换
十进制数转换为八进制、十六进制数,与十进制-二进制转换的方法一致,也分为整数部分和纯小数部分分别进行,各自的转换方法也一致,整数部分除8取余或除16取余,小数部分乘8取整或乘16取整,然后将结果组合起来。(www.xing528.com)
将(37.8125)10转换为八进制数和十六进制数:
得(37.8125)10=(45.64)8。
得(37.8125)10=(25.D)16。
特别提示
可以将十进制数先转换成二进制数,再将二进制数转换成八进制或十六进制数。
例如:将(25.625)10转换成八进制数和十六进制数。
(25.625)10=(11001.101)2
再将(11001.101)2三位一组转换成八进制数,四位一组转换成十六进制数。
5.二进制与八进制的相互转换
3位二进制数从000到111,一共有8种状态,其表达范围刚好相当于一位八进制数,所以二进制数转换成八进制数,只要将二进制数的整数部分由右向左三位一组直至最高位。整数部分有不足三位的,则在高位补零,因为整数的高位添零不影响数值。小数部分由左向右三位一组直至最低位。若小数部分有不足三位的,则在低位补零,因为小数的低位添零不影响数值。即分组对位转换,顺序不变。
例如:(1111011.100101)2转换为八进制数。
得(1111011.100101)2=(173.45)8。
类似地,将八进制数转换为二进制数,也是分组对位转换,顺序不变,将一位八进制数转换成一组三位二进制数。
例如:将(137.26)8转换为二进制数。
得(137.26)8=(1011111.01011)2。
6.二进制与十六进制的相互转换
二-十六进制的转换与二-八进制的转换很类似,只是分组位数有不同。
四位二进制数从0000到1111,一共有16种状态,其表达范围刚好相当于一位十六进制数,所以二进制数转换成十六进制数,只要将二进制数的整数部分由右向左四位一组直至最高位。整数部分有不足四位的,则在高位补零,因为整数的高位添零不影响数值。小数部分由左向右四位一组直至最低位。若小数部分有不足四位的,则在低位补零,因为小数的低位添零不影响数值。
例如:(1001011.100011)2转换为十六进制数。
得(1001011.100011)2=(4B.8C)16。
习题1.2
将十六进制数转换成二进制数也是同样的方法,分组对位,顺序不变,将一位十六进制数转换成一组四位二进制数。
例如:将十六进制数(3A9.C8)16转换为二进制数。
得(3A9.C8)16=(1110101001.11001)2。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。