浮点型十进制与二进制相互转换

 1 def inverse(a):       #将数字逆序
 2     m=''
 3     for i in a[::-1]:
 4        m=m+i
 5     return str(int(m))
 6 def bTod(b,pre=3):        #二进制转换为十进制
 7          a=b.split('.',1)
 8          m=0
 9          n=0
10          for i in range (0,len(a[0])):
11              m=m+int(a[0][len(a)-1-i])*2**i
12          for i in range (0,len(a[1])):
13              n=n+int(a[1][i])*2**(-i-1)
14          d=m+n
15          return print("结果是{:.{}f}" .format(d,pre))
16 def dTob(d,pre=3):         #十进制转换为二进制
17         a=d.split('.',1)
18         m=''
19         n=''
20         c=int(a[0])
21         for i in range (0,100):
22             b=c%2
23             c=c//2
24             m=m+str(b)
25         m=inverse(m)
26         e=int(a[1])*10**(-len(a[1]))
27         for i in range (0,100):
28             e=e*2
29             f=int(e//1)
30             e=e%1
31             n=n+str(f)
32         b=eval(m+'.'+n)
33         return print("结果是{:.{}f}" .format(b,pre))
34 b=input("二进制数字,输出十进制数字")
35 pre=input("数字精度")
36 bTod(b,pre)
37 d=input("十进制数字,输出二进制数字")
38 pre=input("数字精度")
39 dTob(d,pre)

 

本代码支持且仅支持带浮点的数据,

书上说,如非必要,勿增实体,所以还是不写太多了,有些时候就是会对莫名其妙的想法特别认真,够用就行了吧

 

转载于:https://www.cnblogs.com/wobenqiuxin/p/9172546.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值