Login | Register   
RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: VB4,VB5,VB6,VBS
Expertise: beginner
Apr 20, 1999



Convert Hexadecimal numbers

While Visual Basic offers the Hex$ function that converts a decimal value into its hexadecimal equivalent number, it seems that the inverse function is missing. Not true. Try out this one-liner:

Function HexToDec(HexValue As String) As Long
    HexToDec = Val("&H" & HexValue)
End Function
UPDATE The code in the original tip always tries to return an Integer value, which means that, for example, "FFFF" is converted to -1 instead of 65,535. The following new versions fixes this behavior, while still giving you the capability to convert to an integer:

Function HexToDec(HexValue As String, Optional ToInteger As Boolean) As Long
    If ToInteger Then
        ' convert to an integer value, if possible. 
        ' Use CInt() if you want to *always* convert to an Integer
        HexToDec = Val("&H" & HexValue)
        ' always convert to a Long. You can also use the CLng() function.
        HexToDec = Val("&H" & HexValue & "&")
    End If
End Function
Thanks to Joe Hartman for spotting the problem with the original routine and suggesting the solution.
Francesco Balena
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date