算法——二进制小数转换

二进制数转字符串。给定一个介于0和1之间的实数(如0.72),类型为double,打印它的二进制表达式。如果该数字不在0和1之间,或者无法精确地用32位以内的二进制表示,则打印“ERROR”。
链接: leetcode.

二进制小数转化为十进制

在这里插入图片描述

十进制小数转化为二进制

在这里插入图片描述

class Solution {
    public String printBin(double num) {
        StringBuffer sb = new StringBuffer();
        sb.append("0.");
        while(num != 0) {
        	num *= 2;
        	if(num >= 1) {
        		sb.append(1);
        		num -= 1;
        	}else {
        		sb.append(0);
        	}
        	if(sb.length() > 32)
        		return "ERROR";
        }
        return sb.toString();
    }
}

posted @ 2020-11-05 16:28  lippon  阅读(165)  评论(0编辑  收藏  举报