Private Sub Command1_Click()
MsgBox dectohex("4294967295")
End Sub
Function dectohex(ByVal hugenum As String) As String ' trans hugenum to hex
Do While Not Val(hugenum) < 16
dectohex = Hex(Val(Right(hugenum, 4)) Mod 16) & dectohex
hugenum = fourth(hugenum)
hugenum = fourth(hugenum) 'devide hugenum by 4 two times
Loop
dectohex = Hex(Val(hugenum)) & dectohex
End Function
Function fourth(ByVal x As String) As String 'get fourth of x
Dim temp As String, result() As String
temp = x
Dim i As Long
ReDim result(1 To Len(temp)) As String
result(1) = Mid(temp, 1, 1) \ 4
Mid(temp, 1, 1) = Val(Mid(temp, 1, 1) Mod 4)
For i = 2 To Len(x)
result(i) = (Val(Mid(temp, i, 1)) + Val(Mid(temp, i - 1, 1)) * 10) \ 4
Mid(temp, i, 1) = (Val(Mid(temp, i, 1)) + Val(Mid(temp, i - 1, 1)) * 10) Mod 4
Next
fourth = Join(result, "")
If Left(fourth, 1) = "0" Then fourth = Right(fourth, Len(fourth) - 1) ' no zero ahead
Erase result
End Function