我用串口接收一个整型数,接收的时候使用byte数组,怎样把byte数组中两个字节连接起来组成整型数。如果在c语言中用移位和位与很容易实现。

解决方案 »

  1.   

    Dim b1 As Byte
        Dim b2 As Byte
        Dim lnum As Long
        b1 = 100
        b2 = 50
        lnum = b1 * &HFF + b2
        Debug.Print lnum
      

  2.   

    使用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
      

  3.   

    Dim b1 As Byte
        Dim b2 As Byte
        Dim lnum As Long
        b1 = 100
        b2 = 50
        lnum = b1 * &HFF + b2
        Debug.Print lnum
    这个方法对负数不行吧
      

  4.   

    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
      

  5.   

    copymemory吧,这个比较好,改天你一心情好,不要int了,改需要 long 了,那API,你改个参数就行,自己算的话,有你改的,呵呵。