侧边栏壁纸
博主头像
GabrielxD

列車は必ず次の駅へ。では舞台は?私たちは?

  • 累计撰写 471 篇文章
  • 累计创建 108 个标签
  • 累计收到 9 条评论

目 录CONTENT

文章目录

【位运算, 模拟】0~1间浮点实数的二进制表示

GabrielxD
2022-03-30 / 0 评论 / 0 点赞 / 35 阅读 / 169 字 / 正在检测是否收录...
## 题目

0~1间浮点实数的二进制表示


给定一个介于0和1之间的实数,返回它的二进制表示。 如果该数字无法精确地用32位以内的二进制表示,则返回 "ERROR"

示例 1:

输入: num = 0.625
输出: "0.101"
解释: 0.625 小数部分的二进制分别表示为 0.5 0.25 0.125

示例 2:

输入: num = 0.3
输出: "ERROR"

解题

方法一:模拟

思路

乘2挪整

代码

class Solution {
    public String binaryDecimal(double num) {
        StringBuilder sb = new StringBuilder("0.");

        while (num > 0) {
            num *= 2;
            if (num >= 1) {
                sb.append("1");
                num--;
            } else sb.append("0");

            if (sb.length() > 34) return "ERROR";
        }

        return sb.toString();
    }
}
0

评论区