Dim b1 As Byte Dim b2 As Byte Dim lnum As Long b1 = 100 b2 = 50 lnum = b1 * &HFF + b2 Debug.Print lnum
使用CopyMemory函数,声明如下: Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As Any, pSrc As Any, ByVal ByteLen As Long)举例 Private Sub Command1_Click() Dim aByte(1) As Byte Dim intNum As Integer aByte(0) = &HE8 aByte(1) = &H3 CopyMemory intNum, aByte(0), 2 MsgBox intNum End Sub最后结果intNum = 1000
Dim b1 As Byte Dim b2 As Byte Dim lnum As Long b1 = 100 b2 = 50 lnum = b1 * &HFF + b2 Debug.Print lnum 这个方法对负数不行吧
Function MakeWord(ByVal bLo As Byte, ByVal bHi As Byte) As Integer If bHi And &H80 Then MakeWord = ((bHi * 256&) + bLo) Or &HFFFF0000 Else MakeWord = (bHi * 256) + bLo End If End Function
copymemory吧,这个比较好,改天你一心情好,不要int了,改需要 long 了,那API,你改个参数就行,自己算的话,有你改的,呵呵。
Dim b2 As Byte
Dim lnum As Long
b1 = 100
b2 = 50
lnum = b1 * &HFF + b2
Debug.Print lnum
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As Any, pSrc As Any, ByVal ByteLen As Long)举例
Private Sub Command1_Click()
Dim aByte(1) As Byte
Dim intNum As Integer
aByte(0) = &HE8
aByte(1) = &H3
CopyMemory intNum, aByte(0), 2
MsgBox intNum
End Sub最后结果intNum = 1000
Dim b2 As Byte
Dim lnum As Long
b1 = 100
b2 = 50
lnum = b1 * &HFF + b2
Debug.Print lnum
这个方法对负数不行吧
If bHi And &H80 Then
MakeWord = ((bHi * 256&) + bLo) Or &HFFFF0000
Else
MakeWord = (bHi * 256) + bLo
End If
End Function