题目简介:
二进制数转字符串。给定一个介于0和1之间的实数(如0.72),类型为double,打印它的二进制表达式。如果该数字无法精确地用32位以内的二进制表示,则打印“ERROR”。
示例1:
1 | 输入:0.625 |
示例2:
1 | 输入:0.1 |
提示:
- 32位包括输出中的
"0."
这两位。 - 题目保证输入用例的小数位数最多只有
6
位
思路:
将十进制转换为二进制的操作为:
- 先将
num = num * 2
,然后取整数部分temp
- 再将
num = num - temp
,重复上述操作,直到小数部分变成 0 或者小数部分出现循环时结束操作。
tip:
- 若
res.size() > 32
,说明无法被表示
代码如下:
1 | class Solution { |