你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 1922|回复: 5

16进制的浮点数 如何换算为 10进制的浮点数?

[复制链接]

57

主题

403

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-7-15
发表于 2017-2-10 11:01:21 | 显示全部楼层 |阅读模式
见附图
单片机输出了 两个16进制的浮点数(分别为:3E 4E 82 E5和43 B9 46 29)。
MCU为STM32F030。

请教:
如何将这两个16进制的浮点数转换为10进制的浮点数 ?

谢谢!

附图
无标题.png

回复

使用道具 举报

60

主题

2051

回帖

31

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2017-2-10 14:21:22 | 显示全部楼层
浮点数在内存中是用4个字节的表示的,知道了这个之后借助联合体可以有下面的一个可行的方法:

  1. union UFloat
  2. {
  3. float f;          // 浮点数
  4. uint8_t  by4[4]; // 对应的16进制数据
  5. };

  6. float  a,b;

  7. float  c0 = -7.691887,d0 = 4.412552;

  8. union UFloat ua,ub,uc,ud;

  9. int main(void)
  10. {   
  11.     //数组buff中存的16进制数据即为浮点数c0,d0对应的16进制
  12.     uint8_t buff[] = {0xF0,0x23, 0xF6,0xC0,0xA0, 0x33,0x8D,0x40};
  13.     uint8_t t;
  14.     //将浮点数c0,d0对应的16进制分别赋值给联合体ua,ub
  15.     for(t = 0;t < 4;t++)
  16.     {
  17.       ua.by4[t] = buff[t];
  18.       ub.by4[t] = buff[t+4];
  19.     }
  20.     //取得联合体ua,ub中浮点数的值赋值给a,b
  21.     a = ua.f;
  22.     b = ub.f;
  23.     //将相应的浮点数赋值给联合体uc.f和ud.f
  24.     //便于查看浮点数c0,d0对应的16进制
  25.     uc.f = c0;
  26.     ud.f = d0;
  27.     //从调试结果可以看到a的值和c0的相等.b的值和d0的相等
  28. }   
复制代码

运行结果:
2017-02-10_141004.png

回复 支持 1 反对 0

使用道具 举报

57

主题

403

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-7-15
 楼主| 发表于 2017-2-10 15:30:26 | 显示全部楼层
creep 发表于 2017-2-10 14:21
浮点数在内存中是用4个字节的表示的,知道了这个之后借助联合体可以有下面的一个可行的方法:

学习了,非常感谢 !
回复 支持 反对

使用道具 举报

41

主题

2476

回帖

282

蝴蝶豆

论坛元老

最后登录
2020-12-8
发表于 2017-2-11 18:27:21 | 显示全部楼层
学习了。
回复 支持 反对

使用道具 举报

7

主题

171

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-12-8
发表于 2020-2-3 17:35:59 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

17

主题

445

回帖

68

蝴蝶豆

金牌会员

最后登录
2020-7-29
发表于 2020-2-10 03:21:27 | 显示全部楼层
很可惜!后起之秀的孩子们极少愿与16进制、二进制打交道,宁肯大费周张
其实对32位机如果一个数超出4个字节(int 型就是4X8=32位)就可能是long或float ,区别在于是否需要"补"运算
比如:0xFFFF = -1; 0xfffe =-2… 在我记忆中是符点数与十进制是应该有一算法可实现的
2020.02.10.03浮转十.png
回复 支持 反对

使用道具 举报

关于 意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
13245底部标题123相同标题
12底部标题123相同标题
33333底部标题123相同序号
3435底部标题-无链接
关注我们
st-img 微信公众号
st-img 手机版