关于对十进制转单精度浮点数编程无法运行的分析和罗马数字转换成十进制的程序分析。
1.十进制转单精度浮点数
思路:
主要思路是分开写3类数,符号数,指数和尾数,最后把它们转成字符串形式加在一起出结果。
符号数就直接用if-else判断输入的数字的正负(https://img2020.cnblogs.com/blog/2166420/202010/2166420-20201017161931101-742014748.png)
指数部分我是先将输入的数字的整数和小数分开,整数用bin转换成2进制然后用remove去掉0b,之后用127+len(整数),再将其转成2进制得到指数。小于8位用0补齐。(https://img2020.cnblogs.com/blog/2166420/202010/2166420-20201017162231704-571451115.png)但是有一个问题,就是负数无法用此方法实现,当输入的数字无整数部分就无法运行,而且考虑大于8位的情况。
最后的尾数部分,我是先将整数和小数分别转成2进制,之后用str()将其合在一起,未满23位用0补齐,在取str【1:23】截取尾数部分!(https://img2020.cnblogs.com/blog/2166420/202010/2166420-20201017162726630-416808143.png)
(https://img2020.cnblogs.com/blog/2166420/202010/2166420-20201017162735498-1483273311.png)