zoukankan      html  css  js  c++  java
  • 打印一个0到1之间的数的二进制表示

    惊恐

     public static String printBinary(double num)
      {
     if(num>=1||num<=0)
     return "ERROR";
     StringBuilder binary=new StringBuilder();
     binary.append(".");
     while(num>0)
     {
     /*
      *设定长队上限,32个字符
      */
     if(binary.length()>=32)
     return "ERROR";
     double r=num*2;
     if(r>=1)
     {
     binary.append(1);
     num=r-1;
     }
     else
     {
     binary.append(0);
     num=r;
     }
     }
     return binary.toString();  
      }

    上面的做法是将数字乘以2,然后与1进行比較。此外我们还能够将这个数与0.5比較,然后与0.25比較,依此类推。

    例如以下:

    public static String printBinary2(double num)
     {
    if(num>=1||num<=0)
    return "ERROR";
    StringBuilder binary=new StringBuilder();
    double frac=0.5;
    binary.append(".");
    while(num>0)
    {
    /*设定长度上限,32个字符
    */
    if(binary.length()>32)
    return "ERROR";
    if(num>=frac)
    {
    binary.append(1);
    num-=frac;
    }
    else
    {
    binary.append(0);
    }
    frac/=2;
    }
    return binary.toString();
     }

  • 相关阅读:
    Android
    Android
    Android
    Android
    Android
    Android
    Android
    Android
    Android
    Android
  • 原文地址:https://www.cnblogs.com/yfceshi/p/6994869.html
Copyright © 2011-2022 走看看