ホームページ > バックエンド開発 > C++ > C# で巨大な文字列表現の整数を 16 進数に変換する方法

C# で巨大な文字列表現の整数を 16 進数に変換する方法

Patricia Arquette
リリース: 2025-01-11 08:32:43
オリジナル
926 人が閲覧しました

How to Convert Gigantic String-Represented Integers to Hexadecimal in C#?

C# で巨大な整数を 16 進数に変換します

文字列として表現された非常に大きな整数を、それに相当する 16 進数に変換するには、特有の課題が生じます。このような膨大な数に直面すると、従来のアプローチは失敗し、開発者は代替案を探すことを余儀なくされます。

この問題を解決するには、2 進数で整数を操作し、ループ内で数値を追加するという解決策により、等価な 16 進数を生成する方法が提供される可能性があります。このテクニックを実装する方法は次のとおりです:

using System;
using System.Collections.Generic;

public class LargeIntegerToHex
{
    public static void Main(string[] args)
    {
        string value = "843370923007003347112437570992242323";
        List<byte> result = new List<byte>();
        result.Add(0); // 初始化结果列表

        foreach (char c in value)
        {
            int val = c - '0'; // 将字符转换为整数
            //  此处代码有误,需要修正循环条件和计算逻辑
            //  以下为修正后的代码
            for (int i = 0; i < result.Count; i++) {
                int temp = result[i] * 10 + val;
                result[i] = (byte)(temp % 16);
                val = temp / 16;
            }
            if (val > 0) {
                result.Insert(0, (byte)val);
            }
        }


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

        Console.WriteLine($"十六进制等效值:{hex}");
    }
}
ログイン後にコピー

コードの説明: このコードは、まず入力文字列を 1 文字ずつ処理し、各文字を対応する数値に変換します。次に、ループを使用して結果のリストを反復処理し、各数値を 16 進表現に変換します。最後に、すべての 16 進数を連結して、最終的な 16 進数文字列を形成します。 なお、オリジナルコードのループ条件や計算ロジックに誤りがあったため修正しました。 この修正されたコードは、大きな整数から 16 進数への変換を正しく処理します。

以上がC# で巨大な文字列表現の整数を 16 進数に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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