二进制和八进制 十六进制之间的小数部分怎么转换? 最好能详细一点
2个回答
展开全部
小数点后面的进制转换采用估值,一般手算是这样的:十进制转二进制,将小数点后的数单独拿出来(就是去掉前面的整数部分为零),然后乘2,取结果的整数部分,再取结果的小数部分乘2,再取整数部分,以此类推,除非是1/2的整数次,否则可以一直往下算,不过一般是取三位或四位有效数字,按照最后结果,从上到下取每次结果的整数部分。如果看不明白,可以看范例,如12.3456DEC转为二进制,整数部分就不说了,是1100,小数部分这样算,将.3456看为0.3456再乘以2,得到0.6912,取整数位0,再重复第一步,将0.6912乘以2得1.3824,取整数位1,继续重复第一步,将0.3824乘以2得0.7648,取整数位0,下面还是依次类推,一般算到3位就可以了,所以现在12.3456DEC转为二进制数就是1100.010BIN。这是十进制转为二进制,十进制转为八及十六进制是同样道理,只要将乘以2改为乘以8或者16就可以了。
至于二进制转为十进制,方法和整数位相同,例1100.010BIN转十进制,解法如下1100.010BIN=0*2^0+0*2^1+1*2^2+1*2^3+0*2^(-1)+1*2^(-2)+0*2^(-3)=12.25
比较前后两个答案可以知道十进制转二进制是很难得到精确的值的。
当然,如果你说有没有可以直接将二进制转为八进制或16进制的方法,有
1.二转八:1011010.1BIN 可以这样看,001011010.100,然后每三位转为八进制数,如(001)=1,(011)=3,(010)=2,(100)=4,然后就得到八进制数132.4OCT。
2.十六转二:F7.28HEX 将十六进制的每一位都转为四位的二进制数,即F=1111,7=0111,2=0010,8=1000,即可得到二进制数11110111.00101000BIN
总之把握2^3=8,2^4=16这个道理以及,每位八进制数相当于3位二进制数,每位16进制数相当于4位2进制数这句话就可以了。
基本上进制转换就是这个方法,当然除了考试以外,你还是用电脑自带的计算器完成吧。
以上完全自己手打,楼主感激我吧,不知道有没有让你满意。
至于二进制转为十进制,方法和整数位相同,例1100.010BIN转十进制,解法如下1100.010BIN=0*2^0+0*2^1+1*2^2+1*2^3+0*2^(-1)+1*2^(-2)+0*2^(-3)=12.25
比较前后两个答案可以知道十进制转二进制是很难得到精确的值的。
当然,如果你说有没有可以直接将二进制转为八进制或16进制的方法,有
1.二转八:1011010.1BIN 可以这样看,001011010.100,然后每三位转为八进制数,如(001)=1,(011)=3,(010)=2,(100)=4,然后就得到八进制数132.4OCT。
2.十六转二:F7.28HEX 将十六进制的每一位都转为四位的二进制数,即F=1111,7=0111,2=0010,8=1000,即可得到二进制数11110111.00101000BIN
总之把握2^3=8,2^4=16这个道理以及,每位八进制数相当于3位二进制数,每位16进制数相当于4位2进制数这句话就可以了。
基本上进制转换就是这个方法,当然除了考试以外,你还是用电脑自带的计算器完成吧。
以上完全自己手打,楼主感激我吧,不知道有没有让你满意。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询