Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '**************************************
- ' Name: Convert Hex to Decimal (32-bit U
- ' nsigned)
- ' Description:Converts Hex [0 - FFFFFFFF
- ' ] to Decimal [0 - 4294967295] using Curr
- ' ency type to avoid the sign bit.
- ' By: Larry Serflaten (from psc cd)
- '
- '
- ' Inputs:A valid 1-8 character Hex Strin
- ' g
- '
- ' Returns:A Currency value in the range
- ' of 0 - 4294967295
- '
- 'Assumes:None
- '
- 'Side Effects:None
- '**************************************
- Function ConvertHex (H$) As Currency
- Dim Tmp$
- Dim lo1 As Integer, lo2 As Integer
- Dim hi1 As Long, hi2 As Long
- Const Hx = "&H"
- Const BigShift = 65536
- Const LilShift = 256, Two = 2
- Tmp = H
- 'In case "&H" is present
- If UCase(Left$(H, 2)) = "&H" Then Tmp = Mid$(H, 3)
- 'In case there are too few characters
- Tmp = Right$("0000000" & Tmp, 8)
- 'In case it wasn't a valid number
- If IsNumeric(Hx & Tmp) Then
- lo1 = CInt(Hx & Right$(Tmp, Two))
- hi1 = CLng(Hx & Mid$(Tmp, 5, Two))
- lo2 = CInt(Hx & Mid$(Tmp, 3, Two))
- hi2 = CLng(Hx & Left$(Tmp, Two))
- ConvertHex = CCur(hi2 * LilShift + lo2) * BigShift + (hi1 * LilShift) + lo1
- End If
- End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement