有一个8位二进制数字符串10101010,dim a as byte如何把整个字符串赋值给a,

解决方案 »

  1.   

      Dim by As Byte
      Dim str As String
      Dim nNumber As Integer  str = "10101010"  nNumber = 0
      For i = 1 To 8
        nNumber = nNumber + CInt(Mid(str, i, 1)) * 2 ^ (8 - i)
      Next i
        
      by = CByte(nNumber)
      

  2.   


    Dim by As Byte
       Dim str As String
       Dim nNumber As Integer   str = "10101010"   nNumber = 0
       For i = 1 To 8
         nNumber = nNumber + CInt(Mid(str, i, 1)) * 2 ^ (8 - i)
       Next i   by = CByte(nNumber)
      

  3.   

    Private Sub Command1_Click()
        Print CByt("10101010")
    End Sub
    Private Function CByt(ByVal s As String) As Byte
        Dim n As Long, m As Long
        Dim x As Byte
        n = CLng(s)
        m = 10000000
        Do While m > 0
            x = (x * 2) + ((n \ m) And 1)
            m = m \ 10
        Loop
        CByt = x
    End Function
    纯属好玩,没测试效率