' 用途:将二进制转化为十六进制
' 输入:Bin(二进制数)
' 输入数据类型:String
' 输出:BIN_to_HEX(十六进制数)
' 输出数据类型:String
' 输入的最大数为2147483647个字符
Public Function BIN_to_HEX(ByVal Bin As String) As String
Dim i As Long
Dim H As String
If Len(Bin) Mod 4 <> 0 Then
Bin = String(4 - Len(Bin) Mod 4, "0") & Bin
End If
For i = 1 To Len(Bin) Step 4
Select Case Mid(Bin, i, 4)
Case "0000": H = H & "0"
Case "0001": H = H & "1"
Case "0010": H = H & "2"
Case "0011": H = H & "3"
Case "0100": H = H & "4"
Case "0101": H = H & "5"
Case "0110": H = H & "6"
Case "0111": H = H & "7"
Case "1000": H = H & "8"
Case "1001": H = H & "9"
Case "1010": H = H & "A"
Case "1011": H = H & "B"
Case "1100": H = H & "C"
Case "1101": H = H & "D"
Case "1110": H = H & "E"
Case "1111": H = H & "F"
End Select
Next i
While Left(H, 1) = "0"
H = Right(H, Len(H) - 1)
Wend
BIN_to_HEX = H
END Function'我的问题是传入00000000(8个0)进来计算。结果为空。
'请问是什么问题呢??或者VB中二进制转十六进制有更好的办法吗?
' 输入:Bin(二进制数)
' 输入数据类型:String
' 输出:BIN_to_HEX(十六进制数)
' 输出数据类型:String
' 输入的最大数为2147483647个字符
Public Function BIN_to_HEX(ByVal Bin As String) As String
Dim i As Long
Dim H As String
If Len(Bin) Mod 4 <> 0 Then
Bin = String(4 - Len(Bin) Mod 4, "0") & Bin
End If
For i = 1 To Len(Bin) Step 4
Select Case Mid(Bin, i, 4)
Case "0000": H = H & "0"
Case "0001": H = H & "1"
Case "0010": H = H & "2"
Case "0011": H = H & "3"
Case "0100": H = H & "4"
Case "0101": H = H & "5"
Case "0110": H = H & "6"
Case "0111": H = H & "7"
Case "1000": H = H & "8"
Case "1001": H = H & "9"
Case "1010": H = H & "A"
Case "1011": H = H & "B"
Case "1100": H = H & "C"
Case "1101": H = H & "D"
Case "1110": H = H & "E"
Case "1111": H = H & "F"
End Select
Next i
While Left(H, 1) = "0"
H = Right(H, Len(H) - 1)
Wend
BIN_to_HEX = H
END Function'我的问题是传入00000000(8个0)进来计算。结果为空。
'请问是什么问题呢??或者VB中二进制转十六进制有更好的办法吗?
解决方案 »
- 请教:vb连接access数据库中遇到的问题
- AOD的recordset.sort对字符串排序的用法
- TreeView 分组和层级划分??
- 如何判断另一个程序是否运行完毕?
- 如何在VBA的代碼中實現 打開IE的功能
- 急!用VB或VC能否实现动态的给outlook express的地址本添加地址?
- help me!!!在线等待,100分相送,在线等待
- 我想利用一个datagrid控件来显示一个record对象记录集的全部记录,请问怎么用?
- 还是读写二进制文件的问题
- VB6编写的程序在win7下不能运行,个别的win10下运行也出错,求指点!!!
- VB里面如何实现放大、旋转
- combox录入日文乱码,如何解决?
H = Right(H, Len(H) - 1)
Wend
把这句删掉就OK了
'请问是什么问题呢?? H是00的缘故While Left(H, 1) = "0"
H = Right(H, Len(H) - 1)
Wend返回就是""为了防止""出现,你在最后增加一个While Left(H, 1) = "0"
H = Right(H, Len(H) - 1)
Wend
IF H ="" THEN H ="0"