Feedback

C# - Dezimalzahl in beliebiges Zahlensystem umrechnen

Veröffentlicht von am 21.02.2009
(1 Bewertungen)
Berechnet die Wertigkeit der einzelnen Ziffern eines angegebenen Zahlensystems.

Beispiel:
baseSize = 16 (für Hex)
value = 23422
int[] = 5, 11, 7, 14 (Überschnitte wie 11 = B und 14 = E, müssen selbst umgewandelt werden)
public static int[] ToBase(int baseSize, long value)
{
    Stack<int> digits = new Stack<int>();

    long tmp = value;
    while (tmp != 0)
    {
        digits.Push((int)(tmp % baseSize));
        tmp = (long)((tmp - digits.Peek()) / baseSize);
    }            

    return digits.ToArray();
}

2 Kommentare zum Snippet

Klemens Nanni schrieb am 30.03.2010:
Dafür gibt es doch die Klasse Convert.
{
int Number = 12345;
byte Base = 2;

string newNumber = Convert.ToString(Number, Base);
}
Christian Hunke schrieb am 25.11.2010:
@Klemens Nanni
Ja, aber nur solange die Basis 2, 8, 10 oder 16 ist. Meine Methode kann theoretisch mit jeder Basis arbeiten. Z.B. bei alphanumerischer Kodierung sinnvoll, hier ist die Basis 26. Die Ziffernwerte müssen dann nurnoch auf das Offset vom kleinen oder großen 'A' addiert werden.
 

Logge dich ein, um hier zu kommentieren!