Public Function Dec2Hex(ByVal x As String, Optional ByVal L As Byte) As String
Dim dec, Temp, remain As Double
If Len(x) > 10 Then
MsgBox "输入的数字超过上限", vbExclamation, "社保卡演示"
Exit Function
End If
dec = Val(x)
If dec > 4294967295# Then
MsgBox "输入的数字超过上限", vbExclamation, "社保卡演示"
Exit Function
End If
Do
remain = Int(dec / 16)
Temp = remain * 16
Dec2Hex = Hex(dec - Temp) & Dec2Hex
dec = remain
Loop While dec
If Len(Dec2Hex) Mod 2 Then
Dec2Hex = "0" & Dec2Hex
End If
If L * 2 > Len(Dec2Hex) Then Dec2Hex = String(L * 2 - Len(Dec2Hex), "0") & Dec2Hex
End FunctionPublic Function Hex2Dec(ByVal x As String) As String
Dim dec, Temp, remain As Double, i, n As Integer
Do
If Left(x, 1) = "0" Then
x = Mid(x, 2)
Else
Exit Do
End If
Loop
If Len(x) > 8 Then
MsgBox "输入的数字超过上限", vbExclamation, "社保卡演示"
Exit Function
End If
n = Len(x)
For i = 1 To n
Temp = 16 ^ (n - i)
Temp = Val("&H" & Mid(x, i, 1)) * Temp
dec = dec + Temp
Next i
If IsEmpty(dec) Then dec = 0
Hex2Dec = CStr(dec)
End Function

解决方案 »

  1.   

    http://www.cs.ecnu.edu.cn/xuesheng/davy/VBask.htm
      

  2.   

    dim s as long
    dim strHEX as string
    strHEX="你的16禁止字符串,注意大小不能超出Long型的范围,否则下一句就要出错了。"
    s="&H" & strHEX
      

  3.   

    vb 中数值计算的时候都会转成10进制,你可以利用这个试试下面的代码:Private Sub Form_Load()
        Dim hhh As Long
        hhh = &HFE
        
        Dim i As Long
        i = Val(hhh)
        
        MsgBox i
    End Sub
      

  4.   

    十六进制转十进制:=Val("&H" & 十六进制数)比如:
    =Val("&H" & "10")
    用CInt、CLng也行:
    =CInt("&H" & 十六进制数)
    =CLng("&H" & 十六进制数)=Val("&O" & 八进制数)比如:
    =Val("&O" & "10")
    用CInt、CLng也行:
    =CInt("&O" & 八进制数)
    =CLng("&O" & 八进制数)