关于双精度浮点型转换为单精度浮点型数据的问题

已锁定

拐子奔

  • 帖子

    2
  • 精华

    0
  • 被关注

    2

论坛等级:游民

注册时间:2012-11-17

普通 普通 如何晋级?

关于双精度浮点型转换为单精度浮点型数据的问题

1476

2

2015-07-22 21:54:30

大家好,最近遇到一个仪表,MODBUS通讯数据为一个双精度浮点型数据,占用4个寄存器。
S7-300不支持双精度浮点型数据,如何进行转换保存为单精度浮点型数据呢?
双精度的数据解析公式为
X=(-1)^S x 2^( E-1023) x1.M
双精度共64位,为0-63
S:符号位,共1位,编号:63;
E:阶码位,共11位,编号:62-52;
M:小数位,共52位,编号51-0;
例如:40001:40E4; 40002: DA80; 40003::0000; 40004:0000
数据:40E4 DA80 0000 0000
则:
S=0,
E=40E=1038
M=4DA80
X=(-1)^0*2^(E-1023)*1.M
=2^15*1.(4*1/16+D*1/16^2+A*1/16^3+8*1/16^4+.........)
=32768*1.(0.25+13/16*16+10/16^3+.......)
=32768*1.(0.25+0.05078+0.0024+.......)
=42708.00
问题是:如果按照这样解析,程序如何做简便;
有没有更好的办法
关于双精度浮点型转换为单精度浮点型数据的问题 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54709条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。