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
Mary-Kate OlsenOriginal
2025-01-28 10:26:14636Durchsuche

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

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!

Stellungnahme:
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