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

[复制链接]
ayrz2010 发表于 2017-3-13 19:07 | 显示全部楼层
另外一个,分享一个学Modbus必备:
http://www.binaryconvert.com/convert_float.html

任意数的十进制和16进制互转工具  
wengh2016 发表于 2017-3-14 20:52 | 显示全部楼层
遇到的MODBUS的什么问题?
wengh2016 发表于 2017-3-14 20:55 | 显示全部楼层
十六进制和浮点数之间的运算有什么问题?
冰河w 发表于 2017-3-14 22:03 | 显示全部楼层
寄存器的位数,浮点数,长整数的处理要注意的
backlugin 发表于 2017-3-15 10:59 | 显示全部楼层
楼主也没有说遇到什么问题了
backlugin 发表于 2017-3-15 11:03 | 显示全部楼层
IEEE标准的32位浮点数?
hudi008 发表于 2017-3-17 19:46 | 显示全部楼层
你的代码看一下,转换很难吗
hudi008 发表于 2017-3-17 19:51 | 显示全部楼层
这个可以在21ic下载modbus的程序。
Garen2 发表于 2017-3-19 20:48 | 显示全部楼层
是高低位字节序的问题。
angerbird 发表于 2017-3-19 21:27 | 显示全部楼层
这个是有相关的转换算法的
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
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
chenci2013 发表于 2017-3-24 20:59 | 显示全部楼层
遇到什么问题?不能转换?
chenci2013 发表于 2017-3-24 21:07 | 显示全部楼层
这个都在modbus协议里面有。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部