vb中文字和二进制相互转换

StrToByte:字符串->字节数组
ByteToStr:字节数组->字符串

可转换中英文混合字符.

Private Sub StrToByte(s As String, b() As Byte)
    Dim i As Long
    Dim p As Long
    Dim b1 As Byte, b2 As Byte
    For i = 1 To Len(s)
        If Asc(Mid$(s, i, 1)) >= 0 Then
            ReDim Preserve b(p)
            b(p) = Asc(Mid$(s, i, 1))
            p = p + 1
        Else
            ReDim Preserve b(p + 1)
            Call IntToByte(Asc(Mid$(s, i, 1)), b1, b2)
            b(p) = b1
            b(p + 1) = b2
            p = p + 2
        End If
    Next i
End Sub

Private Sub IntToByte(n As Integer, b1 As Byte, b2 As Byte)
    Dim s As String
    s = Right$("0000" & Hex$(n), 4)
    b1 = CByte("&H" & Left$(s, 2))
    b2 = CByte("&H" & Right$(s, 2))
End Sub

Private Function ByteToStr(b() As Byte) As String
    Dim i As Long
    While i <= UBound(b)
        If b(i) < 128 Then
            ByteToStr = ByteToStr & Chr$(b(i))
            i = i + 1
        Else
            ByteToStr = ByteToStr & Chr$(ByteToInt(b(i), b(i + 1)))
            i = i + 2
        End If
    Wend
End Function

Private Function ByteToInt(b1 As Byte, b2 As Byte) As Integer
    Dim s As String
    Dim s1 As String, s2 As String
    s1 = Right$("00" & Hex$(b1), 2)
    s2 = Right$("00" & Hex$(b2), 2)
    s = "&H" & s1 & s2
    ByteToInt = CInt(s)
End Function

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值