I'm trying to convert 6E29210100 (hexa) to binary. With smaller hexa numbers, the code works fine. and I don't know why. I would like it was working to 10 characters at least.
Code returns: 00101001001000010000000100000000
Right answer: *0110111000101001001000010000000100000000
Please, have a look in short version code bellow (full in attachment):
Dim HexNum As String
Dim BinNum As String
Dim lHexNum As Long
Dim i As Integer
Public Sub Teste()
HexNum = "6E29210100"
HexToBin (HexNum)
MsgBox "Bin: " & HexToBin
BinNum = vbNullString
End Sub
Public Function HexToBin(Optional HexNum As String) As String
On Error GoTo ErrorHandler
i = 0
lHexNum = Val("&h" & HexNum)
Do
If lHexNum And 2 ^ i Then
BinNum = "1" & BinNum
Else
BinNum = "0" & BinNum
End If
i = i + 1
Loop Until 2 ^ i > lHexNum
HexToBin = BinNum
ErrorHandler:
End Function
Bookmarks