【面試題 05 02】二進制轉字符串

題目

題目鏈接
二進制數轉字符串。給定一個介於0和1之間的實數(如0.72),類型爲double,打印它的二進制表達式。如果該數字不在0和1之間,或者無法精確地用32位以內的二進制表示,則打印“ERROR”。
示例1:

輸入:0.625
 輸出:"0.101"

示例2:

 輸入:0.1
 輸出:"ERROR"
 提示:0.1無法被二進制準確表示

提示:

32位包括輸出中的"0."這兩位。

實現思路

十進制小數轉二進制技巧
請輸入圖片描述

代碼


class Solution {
    public String printBin(double num) {
        StringBuilder sb = new StringBuilder();
        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();
    }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章