vb 浮点数的通信

来源:百度知道 编辑:UC知道 时间:2024/06/07 18:47:53
vb浮点数据的通信,比如下位机要发送1.234这个数据,串口传输过来的数据是:3F 9D F3 B6 。请问上位机受到这四个数据后怎么处理才能得到我们想要得浮点数1.234?谢谢大家!
就是把四个十六进制的Byte型转换为浮点数,怎么实现?谢谢..

VB的Single 数据类型
Single(单精度浮点型)变量存储为 IEEE 32 位(4 个字节)浮点数值的形式,它的范围在负数的时候是从 -3.402823E38 到 -1.401298E-45,而在正数的时候是从 1.401298E-45 到 3.402823E38。Single 的类型声明字符为感叹号 (!)。
在内存以32位二进制形式存在:
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
第1位为符号位
第2-9位为阶码位
第10-32位为2进制小数尾值
即F2 ^ n * 1.XXXXXXXXXXXXXX
其中
F为正号或负号(首为为0正数,首位为1负数
n为2-9位组成的BYTE数据值
XXXXXXXXXXXXXX为尾数
VB无专门的内置函数处理2-10进制转换及浮点16进制小数转10进制.
以下代码解决2进制位运算来完成四个十六进制的Byte型转换为浮点数:
Option Explicit
Dim i As Integer
Dim j As Integer
Dim bl As String
Dim bl_dm As String
Dim BinData As String
Dim ccl() As String
Dim Ccll() As String
Dim fh As String * 1
Dim zs As String * 8
Dim zssz As String
Dim xs As String * 23
Dim xs_js(23) As Byte
Dim xs_hj As Double
Dim bb_h(1) As String
Dim bb_hh(1) As String
Dim bll_0 As String
Dim single_Data As Single