赞
踩
我们经常遇到一个数据转换问题,我们使用电量表采集数据,电量表的电流电压等数据并不是两个字节,而是4个字节的表达,也就是下位系统直接传输的是单精度浮点数,存储格式是IEEE754格式,大家都比较陌生。实际上我们的计算机系统的浮点数也就是IEEE754格式,所以转换的时候非常简单,不需要进行各种复杂的算法,只需要进行必要的设置就可以转换成功,那就是使用C语言的union定义。(希望你能理解)。
- //********************************************************
- // IEEE574格式转换
- //********************************************************
- typedef union
- {
- float fdata;
- u32 idata;
- }Convert754;
-
-
- //********************************************************
delphi转换如下:
- //**********************************
- // IEE -754 转浮点数
- //**********************************
- function ByteToFloat(b1,b2,b3,b4:byte):Single;
- var tdb : Single;
- bits : Integer;
- s,e,m :Integer;
- begin
- bits := (b1 shl 24) + (b2 shl 16) + (b3 shl 8) + b4;
- //处理符号
- if (bits shr 31
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。