面試題 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無法被二進制准確表示
提示:
- 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()
}
