Zahlen ins 35er System wandeln

Recht sinnfrei, aber wer’s mal haben möchte: Zahlen wandeln in ein beliebiges Zahlensystem unter VB6.
Naja, beliebig ist relativ. Die hier aufgeführte Version macht’s bis zum 35er-System (und bedient sich dabei der restlichen Buchstaben bis “Z” nach dem 16er-System mit “F”).

Private Function lfWandler(ByVal iZahl As Long, ByVal iBasis As Long) As String
Dim lvZahlen As String
Dim lvErgebnis As String
Dim lvRest As Long
 
If iZahl = 0 Then lfWandler = "0": Exit Function
If iBasis = 1 Then lfWandler = iZahl: Exit Function
 
lvZahlen = "0123456789ABCDEFGHIJKLMNOPQRSTUVXYZ"
 
lvRest = iZahl
While Not (lvRest = 0)
lvErgebnis = Mid(lvZahlen, lvRest Mod iBasis + 1, 1) & lvErgebnis
lvRest = iZahl \ iBasis
iZahl = lvRest
Wend
 
lfWandler = lvErgebnis
 
End Function
Private Function lfWandler(ByVal iZahl As Long, ByVal iBasis As Long) As String
Dim lvZahlen As String
Dim lvErgebnis As String
Dim lvRest As Long

If iZahl = 0 Then lfWandler = "0": Exit Function
If iBasis = 1 Then lfWandler = iZahl: Exit Function

lvZahlen = "0123456789ABCDEFGHIJKLMNOPQRSTUVXYZ"

lvRest = iZahl
While Not (lvRest = 0)
lvErgebnis = Mid(lvZahlen, lvRest Mod iBasis + 1, 1) & lvErgebnis
lvRest = iZahl \ iBasis
iZahl = lvRest
Wend

lfWandler = lvErgebnis

End Function

Ich glaube, das war eine der ersten Routinen, die ich je geschrieben habe. Damals noch im BASIC des VC-20 :)

Natürlich kann man den lvZahlen-String noch beliebig erweitern. Wenigstens solange man unterschiedliche ASCII-Zeichen zur Vverfügung hat…
Eine tolle Erweiterung wäre die Bearbeitung von negativen Zahlen und “krummen” Basen. Viel Erfolg :)

Kommentar schreiben

0 Kommentare.

Kommentar schreiben

* Copy this password:

* Type or paste password here:

52 Spam Comments Blocked so far by Spam Free Wordpress


Hinweis - Du kannst dies benutzenHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code lang=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" extra="">