Heim > Backend-Entwicklung > C++ > Wie kann ich effizient Basiskonvertierungen in .NET durchführen?

Wie kann ich effizient Basiskonvertierungen in .NET durchführen?

Mary-Kate Olsen
Freigeben: 2025-01-28 10:26:14
Original
658 Leute haben es durchsucht

How Can I Efficiently Perform Base Conversions in .NET?

.NET High -Efficiency -Aufstiegskonversion

Beim Umgang mit unterschiedlichen progressiven Werten ist häufig eine Vorvertransformation erforderlich. Obwohl die gebaute Methode begrenzte Transformationen unterstützt, fehlt dem .NET einen allgemeinen Mechanismus für den Umsatz.

Benutzerdefinierte Konvertierungsfunktion Convert.ToString

Um die Transformation jeglicher Fortschritte zu verwirklichen, kann es seine eigene praktische Funktion realisieren. Eine einfache Methode ist es, die Zahlen im Ziel zu teilen und die verbleibenden Zahlen in der entgegengesetzten Reihenfolge zu sammeln:

Leistungsoptimierung

<code class="language-csharp">public static string IntToString(int value, char[] baseChars)
{
    string result = string.Empty;
    int targetBase = baseChars.Length;

    do
    {
        result = baseChars[value % targetBase] + result;
        value = value / targetBase;
    } 
    while (value > 0);

    return result;
}</code>
Nach dem Login kopieren
Für große Zahlen kann die obige Methode durch Verwendung eines Array -Puffer anstelle der String -Verbindung optimiert werden:

Diese Methode ist für große Zahlen viel schneller (insbesondere für diejenigen, die längere Darstellungen in der Zielbasis erzeugt haben). Für eine Ziffer kann die ursprüngliche -Methode jedoch schneller sein.

Verwenden Sie das benutzerdefinierte Foundation -Zeichen

<code class="language-csharp">public static string IntToStringFast(int value, char[] baseChars)
{
    // 基数为2且值为int.MaxValue时的最坏情况缓冲区大小
    int i = 32;
    char[] buffer = new char[i];
    int targetBase = baseChars.Length;

    do
    {
        buffer[--i] = baseChars[value % targetBase];
        value = value / targetBase;
    }
    while (value > 0);

    return new string(buffer, i, 32 - i);
}</code>
Nach dem Login kopieren

und IntToString Ermöglichen Sie Ihnen, ein Array eines beliebigen Basiszeichens anzugeben. Dies kann benutzerdefinierte Basen wie Hexadic (Basis 26, Verwendung von Groß- und Kleinbuchstaben) oder 60 -in -sicher (Basis 60) verwenden.

Das obige ist der detaillierte Inhalt vonWie kann ich effizient Basiskonvertierungen in .NET durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage