ホームページ > バックエンド開発 > C++ > .NETでベース変換を効率的に実行するにはどうすればよいですか?

.NETでベース変換を効率的に実行するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-28 10:26:14
オリジナル
629 人が閲覧しました

How Can I Efficiently Perform Base Conversions in .NET?

.NET High -Efficiency Advancement Conversion

さまざまな進行値を扱う場合、多くの場合、事前変換が必要です。構築された-Inメソッドは限られた変換をサポートしていますが、.NETには一般的な目的変換メカニズムがありません。

カスタム変換関数Convert.ToString

進歩の変容を実現するために、それはそれ自体の実用的な機能を実現できます。簡単な方法は、目標の数字を極めて分割し、残りの数字を反対の順序で蓄積することです。 パフォーマンスの最適化

多数の場合、上記の方法は、文字列接続の代わりにアレイバッファーを使用して最適化できます。
<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>
ログイン後にコピー

この方法は、多数(特にターゲットベースでより長い表現を生成した人)に対してはるかに高速です。ただし、1桁の場合、元のメソッドの方が高速になる場合があります。

カスタムファンデーション文字

を使用します
<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>
ログイン後にコピー
および

任意のベース文字の配列を指定できるようにします。これは、ヘキサディック(ベース26、大文字の使用および小文字の使用)または60個のプルーフ(ベース60)などのカスタムベースを使用できます。 IntToString

以上が.NETでベース変換を効率的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート