Feedback

VB - Dezimalzahl in Zahl der Basis b < 37 konvertieren

Veröffentlicht von am 21.11.2010
(1 Bewertungen)
Dieses Snippet rechnet ganze Zahlen der Basis 10 in eine beliebige Basis 1 < b < 37 um.

Die Grenze 36 ergründet sich aus der Menge der Ziffen Z = {0,1,..,9,a,b,..,z}.

Die Funktion gibt "ValueError" zurück, sollte die gewünschte Basis nicht zwischen 2 und 36 liegen.
Function dec2any(ByVal n As Integer, ByVal base As Byte) As String
    If n < 0 Then Return "-" & dec2any(-n, b)
    If base < 2 OrElse base > 36 Then Return "ValueError"
    Dim str As String = "", z As String() = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
        "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"}

    While Not n = 0
        str = z(n Mod base) & str
        n \= base
    End While

    Return str
End Function

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!