首页 > 编程语言 > 详细

算法基础练习-_06 二进制小数

时间:2021-02-15 23:09:19      阅读:29      评论:0      收藏:0      [点我收藏+]

给定一个介于0和1之间的实数,(如0.625) ,类型为double,打印它的二进制表示(0.101,因为小数点后的二进制分别表示0.5,0.25.0.125.....

(如果该数字无法精确地用32位以内的二进制表示,则打印“ERROR”.)

public class _06_二进制小数 {

  public static void main(String[] args) {
    double num = 0.625;
    StringBuilder sb = new StringBuilder("0.");
    while (num > 0) {
      //乘2:挪整
      double r = num * 2;
      //判断整数部分
      if (r >= 1) {
        sb.append("1");
        //消掉整数部分
        num = r - 1;
      } else {
        sb.append("0");
        num = r;
      }

      if (sb.length() > 34) {
        System.out.println("ERROR");
        return;
      }

    }
    System.out.println(sb.toString());
  }

}

要点:

  • 乘2:挪整
2021年2月15日

算法基础练习-_06 二进制小数

原文:https://www.cnblogs.com/btlord/p/14404341.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!