1 'Hex转Byte数组
2 Function Hex2Byte(ByVal sHex As String,ByRef bData() As Byte) As Long
3 Dim nIndex As Long,nBnd As Long
4 Dim pHex As Byte Ptr
5 Dim mAscData(127) As Byte At CodePtr(ASC_DATA)
6
7 nBnd=Len(sHex)\2-1
8 ReDim bData(nBnd)
9 pHex=StrPtr(sHex)
10 For nIndex=0 To nBnd
11 bData(nIndex)=mAscData(@pHex[nIndex * 2]) * 16 + mAscData(@pHex[nIndex * 2 + 1])
12 Next nIndex
13 End Function
14
15 AsmData ASC_DATA
16 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
17 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
18 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
19 DB 0,1,2,3,4,5,6,7,8,9,0,0,0,0,0,0 '48-63
20 DB 0,10,11,12,13,14,15,0,0,0,0,0,0,0,0,0 '64-79
21 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 '80-95
22 DB 0,10,11,12,13,14,15,0,0,0,0,0,0,0,0,0 '96-111
23 End AsmData
24
25 'Byte数组转Hex
26 Function Byte2Hex(ByRef bData() As Byte) As String
27 Dim sHex As String
28 Dim bHex() As Byte
29 Dim nIndex As Long,nBnd As Long,nSize As Long
30 Dim mHexData(15) As Byte At CodePtr(HEX_DATA)
31
32 nBnd=UBound(bData)
33 nSize=(nBnd+1)*2
34 ReDim bHex(nSize-1)
35 For nIndex=0 To nBnd
36 bHex(nIndex * 2) = mHexData(bData(nIndex) \ 16)
37 bHex(nIndex * 2 + 1) = mHexData(bData(nIndex) Mod 16)
38 Next nIndex
39 sHex=Peek$(VarPtr(bHex(0)),nSize)
40 Function=sHex
41 End Function
42
43 AsmData HEX_DATA
44 DB 48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70 '0-F
45 End AsmData