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 サイトの他の関連記事を参照してください。