关于十进制转IEEE

关于十进制转IEEE

转换规则

S的部分在正数的时候为0,负数为1
首先将十进制数字转换为二进制,小数部分和整数部分要分开取。
将转换后的二进制使用科学计数法进行表示,再将指数加上127,再求二进制取移码为阶码
最后取用科学记数法表示的二进制的小数点以后的数字,一直补0至23位

自写编码

    score = float(input('go'))
            
    if score > 0.0: #判断正负
        print('S=0')
    
    if score <= 0.0:
        print('S=1')
    
    
    
    def conInt(n): #将十进制数字转换为二进制
        s=[]
        while(n):
            s.append(str(n%2))
            n=n//2
        s.reverse()
        return "".join(s)
    
    def conFra(n):
        x=[]
        s=[]
        while(n):
            n=n*2
            x.append(str(int(n)))
            n=n-int(n)
        for i in range(0,10):
            s.append(x[i])
        return "".join(s)
    
   def main():
        n=eval(input('go again'))
        a=int(n)
        b=n-a
        print(f"{conInt(a)}.{conFra(b)}")

   main()


   ex = int(input())#输入指数,并加上127转换出二进制由此得到阶码
   y = bin(ex+127)
   print(y) 

由于目前掌握的Python语言还太少,没法进行更完善的编写,但还在学习。

posted @ 2021-10-16 21:43  20211423袁艺  阅读(182)  评论(0编辑  收藏  举报