打印

赋值给单片机一个float变量

[复制链接]
941|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangpe|  楼主 | 2022-5-7 21:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

比如说我接收过来的数据16进制32位的43FA0000,此数据符合IEEE574浮点数标准
我把这个数据如果赋值给单片机一个float变量的话,是不是就是浮点数500.00呢?

使用特权

评论回复
沙发
jiajs| | 2022-5-7 21:32 | 只看该作者
等下,我算下啊

使用特权

评论回复
板凳
wangpe|  楼主 | 2022-5-7 21:34 | 只看该作者
那如果我把这个数赋值给一个无符号32位整数的话,是不是就是整数10进制的1140457472呢

使用特权

评论回复
地板
jlyuan| | 2022-5-7 21:36 | 只看该作者
16进制32位的43FA0000换算为10进制是1140457472

使用特权

评论回复
5
stly| | 2022-5-7 21:39 | 只看该作者
是51吗

使用特权

评论回复
6
wangpe|  楼主 | 2022-5-7 21:41 | 只看该作者

比如:
float x;
unsigned long y,z;
/*假设z保存的是我单片机接收过来的数据16进制32位的43FA0000,此数据符合IEEE574浮点数标准*/
/*那么执行如下操作后*/
x=z;
y=z;
//x是不是就自动为浮点数500.00?
//y是不是就是10进制1140457472

使用特权

评论回复
7
zhanghqi| | 2022-5-7 21:44 | 只看该作者
目测你应该是没错的啊

使用特权

评论回复
8
zwll| | 2022-5-7 21:45 | 只看该作者
可以仿真用观察窗口看一看。

使用特权

评论回复
9
stly| | 2022-5-7 21:50 | 只看该作者
将地址强制转换成浮点数指针即可

使用特权

评论回复
10
wangpe|  楼主 | 2022-5-7 21:53 | 只看该作者
其实还是不大明白,我再琢磨琢磨吧,多谢了哈

使用特权

评论回复
11
tpgf| | 2022-6-6 12:45 | 只看该作者
首先需要转换一下吧

使用特权

评论回复
12
wakayi| | 2022-6-6 13:04 | 只看该作者
应该需要强制转换

使用特权

评论回复
13
wowu| | 2022-6-6 13:12 | 只看该作者
默认情况下不是

使用特权

评论回复
14
xiaoqizi| | 2022-6-6 13:21 | 只看该作者
需要先换算一下

使用特权

评论回复
15
木木guainv| | 2022-6-6 13:28 | 只看该作者
使用的什么编程软件呢

使用特权

评论回复
16
磨砂| | 2022-6-6 13:42 | 只看该作者
强制进行数据类型的转换

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

938

主题

9837

帖子

2

粉丝