zoukankan      html  css  js  c++  java
  • 程序员面试金典 -- 二进制小数

    程序员面试金典 -- 二进制小数

    题目描述

    有一个介于0和1之间的实数,类型为double,返回它的二进制表示。如果该数字无法精确地用32位以内的二进制表示,返回“Error”。

    给定一个double num,表示0到1的实数,请返回一个string,代表该数的二进制表示或者“Error”。

    测试样例:
    0.625
    返回:0.101

    规律是 num * 2 > 1 , 后面就需要加1, 而小于 0 , 则需要 加 0; 

    class BinDecimal {
    public:
        string printBin(double num) {
            // write code here
            string ans = "0."; 
            while(abs(num) > 1e-6) {
                num *= 2; 
                if(num >= 1){
                    num -= 1; 
                    ans += "1"; 
                } else {
                    ans += "0"; 
                }
                if(ans.length() > 32){
                    ans = "Error"; 
                    break; 
                }
            }
            return ans; 
        }
    };
    

      

  • 相关阅读:
    读书笔记7
    读书笔记5
    读书笔记6
    读书笔记4
    读书笔记2
    读书笔记3
    读书笔记1
    嵌入式linux的调试技术
    硬件抽象层:HAL
    蜂鸣器驱动
  • 原文地址:https://www.cnblogs.com/zhang-yd/p/7163163.html
Copyright © 2011-2022 走看看