Dark Ranger
Erfahrenes Mitglied
Hi
Kann mir irgendwer sagen, warum es bei folgendem Code zu einem Fehler kommt, wenn eine Zahl >= 32 umgerechnet werden soll:
Folgender Code das gleiche Problem:
Fehler ist: Überlauf
Fehlernummer: 6
Wo liegt das Problem? Irgendwo im Speicher oder so?
Kann mir irgendwer sagen, warum es bei folgendem Code zu einem Fehler kommt, wenn eine Zahl >= 32 umgerechnet werden soll:
Code:
Function Dec2Bin(ByVal lngZahl As Long) As String
Select Case lngZahl
Case 0
Dec2Bin = "0"
Case 1
Dec2Bin = "1"
Case Else
Dec2Bin = Dec2Bin(lngZahl \ 2) & IIf(lngZahl Mod 2, "1", "0")
End Select
End Function
Folgender Code das gleiche Problem:
Code:
Private Function Dec2Bin(ByVal Dec As Long) As String
' Von Dezimal in Binaer
Dim Rest As Long
Do
Rest = Dec Mod 2 ' Den Rest bei einer Division durch 2 errechnen
Dec2Bin = Rest & Dec2Bin ' Rest und bishereige Binaer Zahl zusammentun
Dec = Dec \ 2 ' Dezimal Zahl durch 2 Teilen
Loop Until Dec = 0 ' Solange bis Dezimal-Zahl = 0 ist
End Function
Fehler ist: Überlauf
Fehlernummer: 6
Wo liegt das Problem? Irgendwo im Speicher oder so?