回 帖 发 新 帖 刷新版面

主题:紧急求助

马上要验收毕设了,程序出了问题。请哪位高手告知小妹一下:VB中怎么将十六进制数转换为二进制数的?急用,非常感谢!!

回复列表 (共5个回复)

沙发

每一位十六进制数字对应四位二进制数字。
真不相信你作为一个计算机相关专业的“毕业生”连这个都不知道?!

板凳

给你一个苯方法

Private Function CL(S As String) As String
Select Case S
Case 0
   CL = "0000"
Case 1
   CL = "0001"
Case 2
   CL = "0010"
Case 3
   CL = "0011"
Case 4
   CL = "0100"
Case 5
   CL = "0101"
Case 6
   CL = "0110"
Case 7
   CL = "0111"
Case 8
   CL = "1000"
Case 9
   CL = "1001"
Case "A"
   CL = "1010"
Case "B"
   CL = "1011"
Case "C"
   CL = "1100"
Case "D"
   CL = "1101"
Case "E"
   CL = "1110"
Case "F"
   CL = "1111"
Case Else
   CL = ""
End Select
End Function

Private Sub Command1_Click()
Dim a As String, S As String, i As Integer
a = "&H800A0B0F"
For i = 1 To Len(a)
    S = S & " " & CL(Mid(a, i, 1))
Next i
S = Trim(S)
MsgBox S
End Sub

3 楼

我也来一个:
'注意,v只能是数值,对字符串和其它无效
Privte Function MyFormat(v as variant) as String
   Dim l As Integer,s As String,i As Integer,b() As Byte
   l=Len(v)
   Redim b(0 to l-1) As Byte
   b=v: s=""
   For i=0 To l-1
      s=s*CStr(b(i))
   Next i
   MyFormat=s
End Function

[color=FF0000]呵呵,乱写的,我这个不好使,VB不支持位操作。[/color]

4 楼

[quote]我也来一个:
'注意,v只能是数值,对字符串和其它无效
Privte Function MyFormat(v as variant) as String
   Dim l As Integer,s As String,i As Integer,b() As Byte
   l=Len(v)
   Redim b(0 to l-1) As Byte
   b=v: s=""
   For i=0 To l-1
      s=s*CStr(b(i))
   Next i
   MyFormat=s
End Function

[color=FF0000]呵呵,乱写的,我这个不好使,VB不支持位操作。[/color][/quote]
哈哈,那你为什么不把它声明为整数类型? 

5 楼

[quote][quote]我也来一个:
'注意,v只能是数值,对字符串和其它无效
Privte Function MyFormat(v as variant) as String
   Dim l As Integer,s As String,i As Integer,b() As Byte
   l=Len(v)
   Redim b(0 to l-1) As Byte
   b=v: s=""
   For i=0 To l-1
      s=s*CStr(b(i))
   Next i
   MyFormat=s
End Function

[color=FF0000]呵呵,乱写的,我这个不好使,VB不支持位操作。[/color][/quote]
哈哈,那你为什么不把它声明为整数类型? 
[/quote]

整数不是还有Integer和Long嘛,这样写本来主要是想转换任意的值到2进制,无奈VB不支持位操作,我把Byte和位搞错了,看来还是使用.NET好,里面直接支持位操作。

我来回复

您尚未登录,请登录后再回复。点此登录或注册