打印

十六进制和浮点数之间的运算

[复制链接]
2952|33
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wyjie|  楼主 | 2017-2-16 20:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zhanghqi| | 2017-2-16 20:26 | 只看该作者
楼主详细说说怎么回事啊,这么说太笼统了

使用特权

评论回复
板凳
wyjie|  楼主 | 2017-2-16 20:28 | 只看该作者
假如我发送一查询请求:01 03 00 00 00 02 CRC
然后收到应答帧:        01 03 04 08 22 38 4E CRC
我需要的数据是 08 22 38 4E,转换成10进制就是8345678,因为MODBUS协议是十六进制数据传输的,但是我希望处理成浮点数 83456.78,请问我该怎么处理,谢谢了!

使用特权

评论回复
地板
shimx| | 2017-2-16 20:30 | 只看该作者

定点处理。

使用特权

评论回复
5
jlyuan| | 2017-2-16 20:31 | 只看该作者
正解

使用特权

评论回复
6
dengdc| | 2017-2-17 17:21 | 只看该作者
先是把这些十六进制的数通过移位处理的换算成32位的数的就可以的。。

使用特权

评论回复
7
heweibig| | 2017-2-17 17:23 | 只看该作者
然后再将该数值的除以100的,需要强制转换成浮点数的啊,即float型或者double型的即可。

使用特权

评论回复
8
lizye| | 2017-2-17 17:26 | 只看该作者
这个是不算复杂的哦,先设置一个32位的长整型变量的,将这些十六进制数通过算法规整到一块的,再将其强制到float型的数据的也可以的。

使用特权

评论回复
9
wyjie|  楼主 | 2017-2-17 17:29 | 只看该作者
哦,那我就知道怎么回事了,多谢大家,结贴了哈

使用特权

评论回复
10
uptown| | 2017-2-17 21:15 | 只看该作者
你说的这个什么运算关系?

使用特权

评论回复
11
uptown| | 2017-2-17 21:27 | 只看该作者
这个之间的运算没有什么关系,直接转换就行吧。

使用特权

评论回复
12
Rollo| | 2017-2-21 21:11 | 只看该作者
设置一个32位的长整型变量的,将这些十六进制数通过算法规整到一块的,再将其强制到float型的数据

使用特权

评论回复
13
sdCAD| | 2017-2-24 22:10 | 只看该作者
是字符串之间的转换吗?

使用特权

评论回复
14
sdCAD| | 2017-2-24 22:11 | 只看该作者
看看sprintf试试。

使用特权

评论回复
15
lwsn| | 2017-2-27 21:33 | 只看该作者
设置一个32位的长整型变量的,将这些十六进制数通过算法规整到一块的,再将其强制到float型的数据

使用特权

评论回复
16
chuntian2016| | 2017-2-27 22:10 | 只看该作者
这个是专门有相关的算法可以采用的

使用特权

评论回复
17
ayrz2010| | 2017-3-8 10:57 | 只看该作者
看样子楼主只是简单的了解了一些modbus基础知识,但是不够系统和全面。
其实,modbus虽然比较简单,但是如果不注意有很多坑,
特别是寄存器的位数,大小端处理,浮点数,长整数的处理等等。
目前也没有什么合适的书籍系统介绍,帮助理解的。

刚刚搜了一下,只有最近清华出版的《Modbus软件开发实战指南》不错,
应该是Modbus开发方面第一书,很系统很全面,各种代码都是开源的。
内容着重讲述如何快速入门并精通Modbus软件开发技术,
适用于初学Modbus通信协议的读者,可以看看。
item.jd.com/11536091028.html

使用特权

评论回复
18
ayrz2010| | 2017-3-10 11:15 | 只看该作者
不用转换啊,你应该问的是高低位字节序的问题。
本来浮点数是4个字节,这4个字节存放到Modbus中,需要2个Modbus地址的寄存器。
这样就存在高低位、字节序的问题。
假设浮点数4个字节分别是A B C D,  如果存放到Modbus寄存器的时候,以BA DC方式的话,
读取的时候,需要交换字节序,否则就乱套了。

当然,具体存放方法编程者可以自己定义,但是Master和Slave端必须统一了。

使用特权

评论回复
19
minzisc| | 2017-3-11 22:13 | 只看该作者
遇到换算问题么?

使用特权

评论回复
20
minzisc| | 2017-3-11 22:16 | 只看该作者
运算遇到什么问题了?

使用特权

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

本版积分规则

927

主题

12706

帖子

5

粉丝