二进制数转字符串

题目链接

二进制数转字符串

题目描述

注意点

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

关键点

  • 小数转为二进制的思路
相关推荐
qq_296553271 分钟前
[特殊字符] 搜索插入位置:从O(n)到O(log n)的优雅进化
数据结构·算法·面试·分类·柔性数组
凯瑟琳.奥古斯特5 分钟前
力扣3654:二维矩阵连续空位统计
数据结构·数据库·算法·职场和发展
江湖中的阿龙8 分钟前
【无标题】
java·开发语言
JavaEdge在掘金9 分钟前
06-LangChain Tool 加载与使用指南:预制工具、SerpAPI、edge-tts、GraphQL
java
NettyBoy11 分钟前
生产 YoungGC 导致的系统化卡顿
java·jvm
聚美智数12 分钟前
食物热量搜索与详情双接口接入实战,轻量化生活服务 API 落地
java·开发语言·生活
Ting-yu13 分钟前
Spring AI Alibaba零基础速成(2) ---- Ollama安装与使用
java·后端·spring·ai
basketball61616 分钟前
并查集基础算法总结 C++ 实现
开发语言·c++·算法
砍材农夫19 分钟前
物联网 基于netty构建mqtt服务协议支持
java·物联网·struts·netty