比如有这样个卡号 13451FFFC0193002 , 现在要把此号转换为 字节数组
字节数组 大小为8个字节
而卡号现在为字符串 有16位长   该如何转换?两位两位取么  如 13   45  1F 这样?能有点代码最好    描述的不如 看例子清楚 直观

解决方案 »

  1.   

    Dim abyte(7) As Byte
    Dim i As Integer
    For i = 0 To 7
        abyte(i) = CByte("&H" & Mid("13451FFFC0193002", i * 2 + 1, 2))
        Debug.Print abyte(i)
    Next
      

  2.   

    16进制字符,每两位表示8位二进制(一个字节Byte),以上用Mid取出两位16进制字符,并用CByte函数强制转换为Byte类型
      

  3.   

    适当范围内的数字,前缀以&H,可以直接表示十六进制数字
      

  4.   

    Private Sub Command1_Click()
        Dim i As Integer
        Dim strVar As String
        Dim AllSize As Long
        Dim UnitSize As Integer '每位长度
        Dim strAry() As String '
        Dim AryLen As Long '数组长度
        
        UnitSize = 8
        strVar = "13451FFFC0193002abc"
        AllSize = Len(strVar)
        AryLen = AllSize \ UnitSize + 1
        ReDim strAry(AryLen)
        
        For i = 1 To AryLen
            strAry(i) = Mid(strVar, (i - 1) * 8 + 1, 8)
            Debug.Print strAry(i)
        Next
    End Sub
      

  5.   

    Private Sub Command1_Click()
        Dim i As Integer
        Dim strVar As String
        Dim AllSize As Long
        Dim UnitSize As Integer '每位长度
        Dim strAry() As String '
        Dim AryLen As Long '数组长度
        
        UnitSize = 2
        strVar = "13451FFFC0193002abc"
        AllSize = Len(strVar)
        AryLen = AllSize \ UnitSize + 1
        ReDim strAry(AryLen)
        
        For i = 1 To AryLen
            strAry(i) = Mid(strVar, (i - 1) * UnitSize + 1, UnitSize)
            Debug.Print strAry(i)
        Next
    End Sub
      

  6.   

    楼上的要加个abc干吗呀
    我的卡号最大就 16位
    单个位的最大值不会大于 F 的
    试一试
    就结帖
      

  7.   

    晕,Zygodactyous在Byte数组里放一个字符?那怎么行呢?
      

  8.   

    Zygodactyous看不懂我的代码吗?费那么大劲搞得这么复杂,还是错的,狂晕~
      

  9.   

    Dim strAry() As String   我刚才看呢 显示结果是对的 但我要的是字节数组啊  呵呵  木头人的 应该可以
    我先试一试   不过你的 显示结果 02 显示为 2了 少个 “0” 啊
      

  10.   

    Dim str_num As String
        Dim i As Integer
        Dim abyte(0 To 7) As Byte
        str_num = Form1.ListView1.SelectedItem.SubItems(2)  ‘取的的卡号 比如 13451FFFC0193002
                                                             ’这句报错  类型不匹配 
        For i = 0 To 7
        abyte(i) = CByte("&H" & Mid(str_num, i * 2 + 1, 2))
       MsgBox abyte(i)
    Next下面这个没错嘛  咋回事??  Dim abyte(7) As Byte
    Dim str As String
    Dim i As Integer
    str = "13451FFFC0193002"
    For i = 0 To 7
    abyte(i) = CByte("&H" & Mid(str, i * 2 + 1, 2))
    Print Hex(abyte(i))
    Next
      

  11.   

    cstr()  转下就可以可但 13451FFF C0193002  中间有个空字符  所以报错  去掉空字符的函数是什么?
    还有  我转十六进制了 还是 2  不是想要的‘02’
      

  12.   

    //去掉空字符的函数是什么
    Replace(str1,该空字符,"")