Maison >développement back-end >C++ >Comment convertir efficacement les nombres en bases arbitraires dans .NET?

Comment convertir efficacement les nombres en bases arbitraires dans .NET?

Barbara Streisand
Barbara Streisandoriginal
2025-01-28 10:16:12514parcourir

How to Efficiently Convert Numbers to Arbitrary Bases in .NET?

Dans le .NET, le nombre a été effectivement converti en toute avancement

Convertir les nombres décimaux en tout autre système dans le système est une tâche courante dans la programmation. Bien que le .NET fournit une méthode pour se convertir en un ensemble de transmission limité, les développeurs ont généralement besoin d'une méthode plus flexible, qui prend en charge toute progression et tout jeu de caractères.

Convert.ToString Méthode de conversion personnalisée

Afin de convertir les nombres en n'importe quel avancement, vous pouvez implémenter une méthode personnalisée, qui itère le nombre dans les progrès cibles. Ceci est une version simplifiée de cette méthode:

Cette méthode utilise la valeur à convertir et un tableau de caractères, qui représente les caractères de l'entrée cible. Il répète la valeur de calcul à l'exception du nombre restant de la cible et ajoute le caractère correspondant à la chaîne de résultats.
<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>

Utiliser des exemples

Pour utiliser cette méthode, vous pouvez transmettre la valeur de la valeur de la valeur et de la cible, par exemple:

Précautions de performance

<code class="language-csharp">// 转换为二进制
string binary = IntToString(5, new char[] { '0', '1' });

// 转换为十六进制
string hex = IntToString(42, 
    new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
                 'A', 'B', 'C', 'D', 'E', 'F'});

// 转换为六十进制
string sexagesimal = IntToString(42, 
    new char[] { '0','1','2','3','4','5','6','7','8','9',
    'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
    'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x'});</code>
La méthode ci-dessus est connectée pour construire la chaîne de résultats avec une chaîne. Pour un grand nombre, cela peut être lent. La version améliorée utilisera le tampon du tableau pour accumuler des caractères.

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!

Déclaration:
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