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
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
解决方案 »
- vb怎样读取excel可自动换行单元格数据
- 求一个好用的VB6连接SQL2005的函数。
- 为什么 当网页中加入<script></script>标记后BODY中的变量就不能正确读取?(使用WebBrowser控件)
- 大家看看,为什么下面语句在读一条记录时有错
- 为什么我写的程序在别的机器上总提示“无法创建ActiveX”
- 请教高手 怎么可以得到本机上光驱的分区号 就是(A,C,D,E,F,G...)中的那一个
- 在VB的一个工程中,应如何将另一个工程中的窗体添加进去????????????
- KEITHLEY2700 VB语音数据采集软件的编写
- 帮忙下
- 怎样找到一个文件夹的所有文件名?
- 为什么要当程序员
- 关于模态对话框
dim strHEX as string
strHEX="你的16禁止字符串,注意大小不能超出Long型的范围,否则下一句就要出错了。"
s="&H" & strHEX
Dim hhh As Long
hhh = &HFE
Dim i As Long
i = Val(hhh)
MsgBox i
End Sub
=Val("&H" & "10")
用CInt、CLng也行:
=CInt("&H" & 十六进制数)
=CLng("&H" & 十六进制数)=Val("&O" & 八进制数)比如:
=Val("&O" & "10")
用CInt、CLng也行:
=CInt("&O" & 八进制数)
=CLng("&O" & 八进制数)