美文网首页
十进制和二进制互相转换

十进制和二进制互相转换

作者: codingriver | 来源:发表于2017-10-15 01:27 被阅读22次

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

    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

    相关文章

      网友评论

          本文标题:十进制和二进制互相转换

          本文链接:https://www.haomeiwen.com/subject/paofuxtx.html