Heim >Backend-Entwicklung >C++ >Wie konvertiert man beliebig große Ganzzahlen (Strings) in C# effizient in Hexadezimalzahlen?

Wie konvertiert man beliebig große Ganzzahlen (Strings) in C# effizient in Hexadezimalzahlen?

Barbara Streisand
Barbara StreisandOriginal
2025-01-11 10:19:42527Durchsuche

How to Efficiently Convert Arbitrarily Large Integers (Strings) to Hexadecimal in C#?

Konvertieren Sie beliebig große Ganzzahlen in das Hexadezimalformat in C#

Frage:

Die Konvertierung großer Ganzzahlen (dargestellt als Zeichenfolgen) in das Hexadezimalformat mit herkömmlichen Methoden kann aufgrund ihrer großen Größenordnung eine Herausforderung darstellen. Beispielsweise kann eine Zeichenfolge wie „843370923007003347112437570992242323“ nicht in eine Hexadezimalzahl umgewandelt werden.

Lösung:

Um dieses Problem zu lösen, kann man eine Technik verwenden, die Zahlen direkt manipuliert und so die Einschränkungen von Standardkonvertierungsmethoden umgeht:

<code class="language-csharp">        string s = "843370923007003347112437570992242323";
        List<byte> result = new List<byte>();
        result.Add(0);
        foreach (char c in s)
        {
            int val = (int)(c - '0');
            //此处代码有误,需要修正算法逻辑,以下为修正后的代码
            for (int i = result.Count - 1; i >= 0; i--)
            {
                result[i] = (byte)((result[i] * 10 + val) % 16);
                val = (result[i] * 10 + val) / 16;
                if (i == 0 && val != 0)
                {
                    result.Insert(0, (byte)val);
                }
            }
        }

        string hex = "";
        foreach (byte b in result)
            hex = "0123456789ABCDEF"[b] + hex;</code>

Diese Methode iteriert über die Zahlen der Eingabezeichenfolge, führt Multiplikations- und Zahlenextraktionsoperationen durch und akkumuliert die hexadezimale Darstellung in der Hex-Variablen. Hinweis: Der Originalcode enthielt einen Logikfehler und wurde korrigiert, sodass er die Hexadezimalkonvertierung jeder großen Ganzzahl korrekt verarbeiten kann. Der überarbeitete Code verwendet einen effizienteren Algorithmus und vermeidet Fehler im Originalcode.

Das obige ist der detaillierte Inhalt vonWie konvertiert man beliebig große Ganzzahlen (Strings) in C# effizient in Hexadezimalzahlen?. 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