二进制数转字符串

题目链接

二进制数转字符串

题目描述

注意点

  • 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";
    }
}

关键点

  • 小数转为二进制的思路
相关推荐
Coder_Boy_几秒前
Java后端核心技术体系全解析(个人总结)
java·开发语言·spring boot·分布式·spring cloud·中间件
南部余额6 分钟前
函数式接口 Lambda 表达式好搭档:Predicate、Function、Consumer、Supplier
java·开发语言·consumer·lambda·function·predicate·supplier
田里的水稻17 分钟前
FA_建图和定位(ML)-超宽带(UWB)定位
人工智能·算法·数学建模·机器人·自动驾驶
Navigator_Z18 分钟前
LeetCode //C - 964. Least Operators to Express Number
c语言·算法·leetcode
Java后端的Ai之路19 分钟前
【JDK】-JDK 17 新特性整理(比较全)
java·开发语言·后端·jdk17
郝学胜-神的一滴19 分钟前
Effective Modern C++ 条款40:深入理解 Atomic 与 Volatile 的多线程语义
开发语言·c++·学习·算法·设计模式·架构
小小小米粒23 分钟前
Spring Boot Starter ,不止是 “打包好配置的工具类包”
java·开发语言
摸鱼仙人~24 分钟前
算法题避坑指南:数组/循环范围的 `+1` 到底什么时候加?
算法
liliangcsdn30 分钟前
基于似然比的显著图可解释性方法的探索
人工智能·算法·机器学习
骇城迷影32 分钟前
代码随想录:二叉树篇(中)
数据结构·c++·算法·leetcode