十进制的234.8转换成二进制,整数部分没问题,这个小数部分0.8我搞了半天,怎么转换啊,难道是个无限循环的二进制???请各位指导一下,我刚入门。

解决方案 »

  1.   

    嗯 
    所以实数计算会有精度丢失的
      

  2.   


    谢谢,那这个数具体转换的时候二进制怎么写小数位?
      

  3.   

    十进制小数→→→→→二进制小数 方法:“乘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(第一次所得到为最高位,最后一次得到为最低位) 
    十进制小数→→→→→八进制小数 方法:“乘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 
      

  4.   

    约摸估一下就是 2^(-1) + 2^(-2) = 0.75
    可能造成精度损失,很容易对不上,看精度要求
      

  5.   

    结贴了吧,只能给一个人,55555,不过还是谢谢各位的帮忙:)
      

  6.   

    原来可以给给几个人,给了,呵呵,