分享:64位浮点数转32位浮点数程序 点击:189 | 回复:0



关育谋

    
  • [版主]
  • 精华:4帖
  • 求助:22帖
  • 帖子:568帖 | 5193回
  • 年度积分:279
  • 历史总积分:48360
  • 注册:2004年5月28日
发表于:2021-11-03 13:13:09
楼主

分享:64位浮点数转32位浮点数程序


西门子S7-200测试通过,程序网上而来,献给有需要的各位!

一、主程序调用:

64位浮点数保存于VB0开始的存储区中,转换得出的32位浮点数保存于VD100中。

1.png

二、子程序符号表:

10.png

三、子程序网络1:

1.把双精度浮点数的高16位读取出来

2.左移1位,右移5位之后取到双精度浮点数的指数部分

3.双精度浮点数指数减去1023,再加上127得到单精度浮点数的指数部分

四、子程序网络2:

取出双精度浮点数的高8位

4.png

五、子程序网络3:

双精度浮点数指针后移一个字节

5.png

六、子程序网络4:

左移4位,右移8位得到单精度浮点数的小数部分

6.png

七、子程序网络5:

把单精度浮点数的指数部分加上,右移1位空出符号位

7.png

八、子程序网络6:

传送符号位

8.png

九、子程序网络7:

最终结果

9.png

1分不嫌少!


相关主题

官方公众号

智造工程师