关于十进制转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语言还太少,没法进行更完善的编写,但还在学习。