回到首页

输入关键词,多个关键词用空格分隔。

← 面试刷题笔记 · 系列目录

Binary to String

约 1 分钟
本页目录

Binary to String

Given a real number between 0 and 1 that is passed in as a double, print the binary representation. If the number cannot be represented accurately in binary with at most 32 characters, print ERROR

Solution

根据二进制转换方法进行转换

Complexity

时间复杂度 O(n),空间复杂度 O(1)

Code

public void binary2String(double num){
    if (num >= 1 || num <= 0){
        System.out.println("ERROR");
        return;
    }

    StringBuilder binary = new StringBuilder();
    binary.append('.');

    while (num > 0){
        if (binary.length() > 32){
            System.out.println("ERROR");
            return;
        }

        double t = num * 2; // num << 1
        if (num >= 1){
            binary.append(1);
            num = t - 1;
        }
        else{
            binary.append(0);
            num = t;
        }
    }
    System.out.println(binary.toString());
}

相关文章