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

查看: 1932|回复: 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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版