十进制和二进制互相转换

2017-10-15  本文已影响22人  codingriver

二进制表示一般用原码表示,计算加减时用补码表示。
这里的二进制小数是用的定点数表示,不是用浮点数表示的。

0X01 二进制转十进制

例子:
[01101100]2=0×27+1×26+1×25+0×24+1×23+1×22+0×21+0×20=10810
[101.101]2=1×22+0×21+1×20+1×2-1+0×2-2+1×2-3=5.625
注:这里的二进制小数是原码表示的,使用的定点数表示,没有用浮点数表示

0X02 十进制转二进制

1.十进制整数转二进制

十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
例子:求17310的二进制

2.十进制小数转二进制

十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数 部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。
然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
例子:求0.812510的二进制

例子:173.812510=17310+0.812510=101011012(原)+0.11012(原)=10101101.11012(原)
-1.2510=10000001.012(原)

十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又 得到一个积,再将积的整数部分取出,如此进行,直到积中的整数部分为零,或者整数部分为1,此时0或1为二进制的最后一位。或者达到所要求的精度为止。
  然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。 
  十进制小数转二进制
  如:0.62510=0.1012
  0.6252=1.25======取出整数部分1
  0.25
2=0.5========取出整数部分0
  0.5*2=1==========取出整数部分1

再如:0.710=0.1011001102
  0.72=1.4========取出整数部分1
  0.4
2=0.8========取出整数部分0
  0.82=1.6========取出整数部分1
  0.6
2=1.2========取出整数部分1
  0.22=0.4========取出整数部分0 
  0.4
2=0.8========取出整数部分0
  0.82=1.6========取出整数部分1
  0.6
2=1.2========取出整数部分1
  0.2*2=0.4========取出整数部分0

参考文章:
http://www.cnblogs.com/xkfz007/articles/2590472.html

上一篇 下一篇

猜你喜欢

热点阅读