蓝桥学院2019算法题1.7

  浮点数二进制运算方法:乘2挪整

  

 1 package bitOperation;
 2 
 3 /**
 4  * @author zsh
 5  * @company wlgzs
 6  * @create 2019-02-14 16:40
 7  * @Describe 题6:0~1间浮点实数的二进制表示
 8  * 给定一个介于0和1之间的实数,(如0.625)类型为 double ,
 9  * 打印它的二进制表示(0.101因为小数点后的二进制分别表示0.5,0.25.0.125……)
10  * 如果该数字无法精确地用32位以内的二进制表示
11  * 则打印“ ERROR ”
12  */
13 public class Main6 {
14     public static void main(String[] args) {
15         double num = 0.625;
16         StringBuilder stringBuilder = new StringBuilder("0.");
17         while (num > 0){
18             //乘2
19             double r = num*2;
20             //判断整数部分
21             if (r >= 1){
22                 stringBuilder.append("1");
23                 num = r -1;
24             }else {
25                 stringBuilder.append("0");
26                 num = r;
27             }
28             //判断能否精确表示
29             if (stringBuilder.length() > 34){
30                 System.out.println("ERROR");
31                 return;
32             }
33         }
34         System.out.println(stringBuilder.toString());
35     }
36 }
原文地址:https://www.cnblogs.com/zsh-blogs/p/10375581.html