二进制数转字符串

题目链接

二进制数转字符串

题目描述

注意点

  • 32位包括输出中的 "0." 这两位
  • 题目保证输入用例的小数位数最多只有 6 位

解答思路

  • 将小数转为二进制的思路是将小数乘2,如果整数部分为1,则说明第i位是1(第i位则乘了2的几次方),否则说明第i位是0,循环该过程直到num为0或者字符串长度大于32(题目要求数字无法精确地用32位以内的二进制表示,则打印"ERROR")

代码

java 复制代码
class Solution {
    public String printBin(double num) {
        StringBuilder sb = new StringBuilder("0.");
        while (sb.length() <= 32 && num != 0) {
            num *= 2;
            if (num < 1) {
                sb.append("0");
            } else {
                sb.append("1");
                num -= 1;
            }
        }
        return num == 0 ? sb.toString() : "ERROR";
    }
}

关键点

  • 小数转为二进制的思路
相关推荐
用户8181870627463 分钟前
第26章 Kafka vs RocketMQ vs RabbitMQ真实选型对比
java·后端
hetao17338374 分钟前
2026-09-13 hetao1733837 的刷题记录
c++·算法
lv__pf5 分钟前
09-深入理解AQS之独占锁ReentrantLock源码分析【TL 并发 09】
java·开发语言
letisgo55 分钟前
JAVA 高级进阶18篇《生产级RAG:切分、检索、评估与Graph RAG全链路实战》
java·面试·检索增强·rag·graph rag
随遇而安zx9 分钟前
【并发】---Disruptor 原理、源码与实战 深度解析
java·并发·disruptor
hansang_IR12 分钟前
【题解】[JSOI2016] 扭动的回文串
c++·算法
Lyyaoo.13 分钟前
【二分查找】【困难】寻找两个有序数组的中位数
java·数据结构·算法
有点。21 分钟前
C++03阶段练习(一)
数据结构·c++
小羊没烦恼!25 分钟前
Memory 记忆设计讨论:Agent Memory 的安全边界:权限、删除、版本与回执
java·大数据·word·powerpoint·.net
这是程序猿25 分钟前
Java线程池深度剖析:源码原理、核心参数、任务调度与生产调优实战
java·开发语言·python