I need help "Overflow" binary to decimal converter

Option Explicit

Private Function DecToBin(ByVal x As Long) As String
Dim Y As Long
Dim Num As String

While (x \ 2) > 0
    Y = x \ 2
    If x > 1 Then
    Num = Val(x - (Y * 2)) & Num
    End If
    x = Y
Wend
Num = x & Num
DecToBin = Num
End Function
Private Function Pow(Number As Long, Power As Integer) As Long
Dim x As Integer
If Power > 1 Then
For x = 2 To Power
Number = Number * 2
Next
Pow = Number
Else
If Power = 0 Then Pow = 1
If Power = 1 Then Pow = Number
End If
End Function
Private Function BinToDec(ByVal Num As Long) As Long
Dim sngNumber As Long
Dim x As Integer
Dim Tmp As Long
Dim Output As Long
sngNumber = Num

For x = 0 To Len(CStr(sngNumber)) - 1
Tmp = CLng(Right(CStr(sngNumber), 1))
If Tmp = 1 Then
Tmp = Tmp * Pow(2, x)
End If
Output = Output + Tmp
Tmp = 1

If Len(CStr(sngNumber)) > 1 Then
sngNumber = CLng(Left$(CStr(sngNumber), Len(CStr(sngNumber)) - 1))
Else
sngNumber = 0
End If
Next
BinToDec = Output
End Function


Private Sub cmdBintoDec_Click()
txtDecimal.Text = BinToDec(txtBinary.Text)
txtBinary.Text = ""
End Sub

Private Sub cmdDectoBin_Click()
txtBinary.Text = DecToBin(txtDecimal.Text)
txtDecimal.Text = ""
End Sub

Add new comment