程序员面试金典 - 面试题 05.02. 二进制数转字符串(浮点型 转 二进制小数,乘2取整)
1. 題目
二進(jìn)制數(shù)轉(zhuǎn)字符串。給定一個(gè)介于0和1之間的實(shí)數(shù)(如0.72),類型為double,打印它的二進(jìn)制表達(dá)式。
如果該數(shù)字不在0和1之間,或者無法精確地用32位以內(nèi)的二進(jìn)制表示,則打印“ERROR”。
示例1:輸入:0.625輸出:"0.101"示例2:輸入:0.1輸出:"ERROR"提示:0.1無法被二進(jìn)制準(zhǔn)確表示提示: 32位包括輸出中的"0."這兩位。來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/bianry-number-to-string-lcci
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
2. 解題
- 浮點(diǎn)數(shù)乘以進(jìn)制2,取整數(shù)位添加到 二進(jìn)制小數(shù)位后面
- 浮點(diǎn)數(shù)舍去整數(shù)位,重復(fù)以上過程直至浮點(diǎn)數(shù)變成 0,若無法等于 0,則無法精確表示
另參考:二進(jìn)制小數(shù) 轉(zhuǎn) 10進(jìn)制
二進(jìn)制 0.1111\quad 0 \quad . \quad 1 \quad\quad 1 \quad \quad 1 \quad \quad 10.1111
次方 202?12?22?32?4\quad \quad 2^0 \quad \quad 2^{-1} \quad 2^{-2} \quad 2^{-3} \quad 2^{-4}202?12?22?32?4
十進(jìn)制 0+0.5+0.25+0.125+0.0625=0.9375\quad 0 + 0.5 + 0.25 + 0.125 + 0.0625 = 0.93750+0.5+0.25+0.125+0.0625=0.9375
總結(jié)
以上是生活随笔為你收集整理的程序员面试金典 - 面试题 05.02. 二进制数转字符串(浮点型 转 二进制小数,乘2取整)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 71. 简化路径(栈)
- 下一篇: LintCode 1652. 区间异或