二進制數轉字符串


面試題 05.02. 二進制數轉字符串

Difficulty: **二進制數轉字符串。給定一個介於0和1之間的實數(如0.72),類型為double,打印它的二進制表達式。如果該數字無法精確地用32位以內的二進制表示,則打印“ERROR”。 示例1: 輸入:0.625 輸出:"0.101" 示例2: 輸入:0.1 輸出:"ERROR" 提示:0.1無法被二進制准確表示 提示: 32位包括輸出中的"0."這兩位。 **

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

示例1:

 輸入:0.625
 輸出:"0.101"

示例2:

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

提示:

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

Solution

Language: ****

func printBin(num float64) string {
    var str strings.Builder
    str.WriteString("0.")
    for i:=0;i<31;i ++ {
        num *= 2
        if (num>=1) {
            str.WriteString("1")
            num -= 1
        }else {
            str.WriteString("0")
        }
        if num == 0 {
            break
        }
    }
    if num != 0 {
        return "ERROR"
    }
    return str.String()
}
​


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM