Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1562 | Anzahl registrierter User: 1893 | Besucher online: 56
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Dezimalzahl in beliebiges Zahlensystem umrechnen


Autor: Christian Hunke
Sprache: C#
Bewertung:
noch nicht bewertet
Anzahl der Aufrufe: 5722
  
Kick it on dotnet-kicks.de  

Beschreibung:

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)


Abgelegt unter: Zahl, Dezimalzahl, Ganzzahl, Zahlensystem, umrechnen.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
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();
}
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

Klemens Nanni schrieb am:  30.03.2010 21:48:48

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 18:29:00

@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.


schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.