Maison > développement back-end > C++ > Comment convertir efficacement des entiers arbitrairement grands (chaînes) en hexadécimal en C# ?

Comment convertir efficacement des entiers arbitrairement grands (chaînes) en hexadécimal en C# ?

Barbara Streisand
Libérer: 2025-01-11 10:19:42
original
477 Les gens l'ont consulté

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

Convertir des entiers arbitrairement grands au format hexadécimal en C#

Question :

La conversion de grands entiers (représentés sous forme de chaînes) au format hexadécimal à l'aide de méthodes traditionnelles peut poser des défis en raison de leur énorme ordre de grandeur. Par exemple, une chaîne telle que « 843370923007003347112437570992242323 » ne peut pas être convertie en hexadécimal.

Solution :

Pour résoudre ce problème, on peut utiliser une technique qui manipule directement les nombres, évitant ainsi les limitations des méthodes de conversion standards :

<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>
Copier après la connexion

Cette méthode parcourt les nombres de la chaîne d'entrée, effectue des opérations de multiplication et d'extraction de nombres et accumule la représentation hexadécimale dans la variable hexadécimale. Remarque : Le code original contenait une erreur logique et a été corrigé afin qu'il puisse gérer correctement la conversion hexadécimale de tout grand entier. Le code révisé utilise un algorithme plus efficace et évite les erreurs présentes dans le code original.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal