如題
我用485讀取流量計傳回數值 68 73 40 B9 (16進制)
實際流量計上顯示為5.794,要如何將上面那16進制轉換為
一般正常使用的10進制
廠商給的資料是說明輸出格式為 32位元 浮點數
就是要16進制的32位元浮點數,轉成可讀的10進制
求解
uj5u.com熱心網友回復:
給你個簡單的例子,實際使用還需要自己完善。
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public Function StrToSng(ByVal Data As String) As Single
Dim R(3) As Byte
On Error GoTo hErr
Data = Replace(Data, " ", "")
StrToSng = 0
R(0) = CByte("&H" & Mid(Data, 3, 2))
R(1) = CByte("&H" & Mid(Data, 1, 2))
R(2) = CByte("&H" & Mid(Data, 7, 2))
R(3) = CByte("&H" & Mid(Data, 5, 2))
CopyMemory StrToSng, R(0), LenB(StrToSng)
hErr:
End Function
用法:
Debug.Print StrToSng("687340B9")
5.794
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/21752.html
標籤:VB基礎類
