十进制小数的二进制,八进制,十六进制转换方法

原创
2015/11/25 05:08
阅读数 1.5W

十进制小数的二进制,八进制,十六进制转换方法


十进制小数转换为二进制小数 方法:“乘2取整”

对十进制小数乘2得到的整数部分和小数部分,整数部分既是相应的二进制数码,再用2乘小数部分(之前乘后得到新的小数部分),又得到整数和小数部分.

如此不断重复,直到小数部分为0或达到精度要求为止。第一次所得到为最高位,最后一次得到为最低位。

如:0.25的二进制

0.25*2=0.5  取整是0

0.5*2=1.0    取整是1

即0.25的二进制为 0.01 ( 第一次所得到为最高位,最后一次得到为最低位)

0.8125的二进制

0.8125*2=1.625   取整是1

0.625*2=1.25     取整是1

0.25*2=0.5       取整是0

0.5*2=1.0        取整是1

即0.8125的二进制是0.1101(第一次所得到为最高位,最后一次得到为最低位)


如果小数部很难为0时,则根据要求精度取近似值。

比如:0.2的二进制

0.2*2=0.4 取整是0

0.4*2=0.8 取整是0

0.8*2=1.6 取整是1

0.6*2=1.2 取整是1

0.2*2=0.4 取整是0

即0.2的二进制是0.00110011。。。成无限循环小数了。


十进制小数转换为八进制小数 方法:“乘8取整” 

0.71875)10 =(0.56)8

0.71875*8=5.75  取整5

0.75*8=6.0      取整6

即0.56


十进制小数转换为十六进制小数方法:“乘16取整”例如: 

(0.142578125)10=(0.248)16

0.142578125*16=2.28125  取整2

0.28125*16=4.5          取整4

0.5*16=8.0              取整8

即0.248


写个纯十进制小数转换十六进制的函数:

 

非十进制数之间的转换 

(1)二进制数与八进制数之间的转换 

转换方法是:以小数点为界,分别向左右每三位二进制数合成一位八进制数,或每一位八进制数展成三位二进制数,不足三位者补0。例如: 

(423。45)8=(100 010 011.100 101)2 

(1001001.1101)2=(001 001 001.110 100)2=(111.64)8 


(2)二进制与十六进制转换 

转换方法:以小数点为界,分别向左右每四位二进制合成一位十六进制数,或每一位十六进制数展成四位二进制数,不足四位者补0。例如: 

(ABCD。EF)16=(1010 1011 1100 1101.1110 1111)2 

(101101101001011.01101)2=(0101 1011 0100 1011.0110 1000)2=(5B4B.68)16


完。

参照:

http://my.oschina.net/dubenju/blog/500830

展开阅读全文
打赏
0
2 收藏
分享
加载中
更多评论
打赏
0 评论
2 收藏
0
分享
返回顶部
顶部