浮点数二进制运算方法:乘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 //乘219 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 }