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