leetcode面试题 05.02. 二进制数转字符串 (十进制小数转二进制小数)

乘2取整法介绍:

举例:0.35转换成二进制

  0.35×2=0.7 ······ 取0(d1)
  0.7×2=1.4 ······ 取1(d2)
  0.4×2=0.8 ······ 取0(d3)
  0.8×2=1.6 ······ 取1(d4)
  0.6×2=1.2 ······ 取1(d5)
  0.2×2=0.4 ······ 取0(d6)
  ·····
  直到满足规定的位数为止
  
  所以(0.35)10=(0.d1d2d3d4d5d6)2=(0.010110)2
  


 证明:

https://blog.csdn.net/dazuo01/article/details/12243415


class Solution:
    def printBin(self, num: float) -> str:
        ans,i='0.',32
        while num and i:
            num*=2
            if num>=1: 
                ans+='1'
                num-=1
            else:ans+='0'
            i-=1
        if num!=0: ans="ERROR"
        return ans

参考博客: 

  1. https://blog.csdn.net/dazuo01/article/details/12243415

  2. https://segmentfault.com/a/1190000019386714?utm_source=tag-newest

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值