大家好,最近遇到一个仪表,MODBUS通讯数据为一个双精度浮点型数据,占用4个寄存器。
M340不支持双精度浮点型数据,如何进行转换保存为单精度浮点型数据呢?
双精度的数据解析公式为
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
问题是:如果按照这样解析,程序如何做简便;
有没有更好的办法
PS:小弟新人,没有积分悬赏,希望大家多指点交流