Chinaunix首页 | 论坛 | 博客
  • 博客访问: 318812
  • 博文数量: 85
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 800
  • 用 户 组: 普通用户
  • 注册时间: 2014-10-18 15:21
文章分类

全部博文(85)

文章存档

2017年(1)

2016年(19)

2015年(55)

2014年(10)

我的朋友

分类: 嵌入式

2016-09-01 19:36:14

错误的转换方法
ultemp1=MK_DWORD(pin->iSDO_PMPower_LowWord,pin->iSDO_PMPower_HighWord);
ftemp=(FLOAT32)ultemp1;
ultemp2=(UINT32)ftemp;
pout->iSDO_9216_PMPower=ultemp2;/*123.45kW--> 123kW*/
pPMshow->PMPower_W=ftemp*1000;


正确的转换方法:使用共用体,共用内存的方式
typedef union 
{
    UINT32 ulData;    
    FLOAT32 fData;
}FLOAT_UINT32_MEM_UNION;

FLOAT_UINT32_MEM_UNION temp_fin32;
temp_fin32.ulData=MK_DWORD(pin->iSDO_PMPower_LowWord,pin->iSDO_PMPower_HighWord);
pout->iSDO_9216_PMPower=temp_fin32.fData;/*123.45kW--> 123kW*/
pPMshow->PMPower_W=temp_fin32.fData*1000;


参考文章

小议大小端模式对C语言的共用体结构的影响
http://blog.csdn.net/ce123/article/details/7097026

 浮点型数据存储方式分析 
http://blog.chinaunix.net/uid-20937170-id-3396073.html
阅读(1128) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~