LeetCode 面试题 05.02. 二进制数转字符串

LeetCode 面试题 05.02. 二进制数转字符串

原题

LeetCode 面试题 05.02. 二进制数转字符串

思路

  • 小数转二进制的规则:小数2 取整数部分,直至乘后结果刚好为1。例如:0.6252 = 1.25, 取1,小数部分的0.25继续乘以2为0.5,取0,小数部分0.5乘以2为1,停止,结果为0.101。
  • 输出的32位中包括“0.”这两位,直接用字符串变量ans存储,变量num乘后的整数进行判断,大于1的话ans直接在后拼接’1’,否则拼’0’,刚好为1就退出循环,30次循环后未输出则输出"ERROR"。

代码

class Solution {
public:
    string printBin(double num) {
        string ans = "0.";
        int i = 0;
        while (i < 30) {
            num *= 2;
            i++;
            if (num >= 1) {
                ans += '1';
                if (num == 1){
                    return ans;
                    break;
                } 
                else num -= 1;
            }
            else ans += '0';
        }
        return "ERROR";
    }
};

运行截图

在这里插入图片描述

收获

  • 小数变二进制
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值