发新帖我要提问
12
返回列表
打印

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

[复制链接]
楼主: wyjie
手机看帖
扫描二维码
随时随地手机跟帖
21
ayrz2010| | 2017-3-13 19:07 | 只看该作者 回帖奖励 |倒序浏览
另外一个,分享一个学Modbus必备:
http://www.binaryconvert.com/convert_float.html

任意数的十进制和16进制互转工具  

使用特权

评论回复
22
wengh2016| | 2017-3-14 20:52 | 只看该作者
遇到的MODBUS的什么问题?

使用特权

评论回复
23
wengh2016| | 2017-3-14 20:55 | 只看该作者
十六进制和浮点数之间的运算有什么问题?

使用特权

评论回复
24
冰河w| | 2017-3-14 22:03 | 只看该作者
寄存器的位数,浮点数,长整数的处理要注意的

使用特权

评论回复
25
backlugin| | 2017-3-15 10:59 | 只看该作者
楼主也没有说遇到什么问题了

使用特权

评论回复
26
backlugin| | 2017-3-15 11:03 | 只看该作者
IEEE标准的32位浮点数?

使用特权

评论回复
27
hudi008| | 2017-3-17 19:46 | 只看该作者
你的代码看一下,转换很难吗

使用特权

评论回复
28
hudi008| | 2017-3-17 19:51 | 只看该作者
这个可以在21ic下载modbus的程序。

使用特权

评论回复
29
Garen2| | 2017-3-19 20:48 | 只看该作者
是高低位字节序的问题。

使用特权

评论回复
30
angerbird| | 2017-3-19 21:27 | 只看该作者
这个是有相关的转换算法的

使用特权

评论回复
31
mnynt121| | 2017-3-20 12:35 | 只看该作者
将40800000转换为10进制数,方法如下:

Modbus浮点数转换示例
Modbus浮点数转换示例
先将16进制数转成二进制数01000000100000000000000000000000
1位符号位(SIGN)=0
8位指数位(EXPONENT)=10000001=129[10进制]
23位尾数位(MANTISSA)=00000000000000000000000
1.尾数=1 .00000000000000000000000=1.0000000[10进制]
套入公式得SGL=(-1)^0*1.0000000*2^(129-127)=4

使用特权

评论回复
32
mnynt121| | 2017-3-20 12:38 | 只看该作者
VB转换方法:

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long) ‘定义

Dim A(3) As Byte
Dim d As Single
A(0)=&H00
A(1)=&H00
A(2)=&H80
A(3)=&H40
CopyMemory d, A(0), 4
' 结果d=4

使用特权

评论回复
33
chenci2013| | 2017-3-24 20:59 | 只看该作者
遇到什么问题?不能转换?

使用特权

评论回复
34
chenci2013| | 2017-3-24 21:07 | 只看该作者
这个都在modbus协议里面有。

使用特权

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

本版积分规则