C#에서 거대한 정수를 16진수로 변환
문자열로 표현된 매우 큰 정수를 해당하는 16진수로 변환하는 것은 고유한 과제를 제시합니다. 이러한 엄청난 숫자에 직면했을 때 기존 접근 방식은 실패하고 개발자는 대안을 찾아야 합니다.
이 문제를 해결하기 위해 이진수로 정수를 조작하고 루프에 숫자를 추가하는 솔루션을 통해 16진수에 해당하는 값을 생성할 수 있습니다. 이 기술을 구현하는 방법은 다음과 같습니다.
<code class="language-csharp">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}"); } }</code>
코드 설명: 이 코드는 먼저 입력 문자열을 문자별로 처리하고 각 문자를 해당 숫자 값으로 변환합니다. 그런 다음 루프를 사용하여 결과 목록을 반복하고 각 숫자를 16진수 표현으로 변환합니다. 마지막으로 모든 16진수를 연결하여 최종 16진수 문자열을 형성합니다. 원본 코드에는 루프 조건과 계산 로직에 오류가 있어 수정되었음을 알려드립니다. 이 수정된 코드는 큰 정수에서 16진수로의 변환을 올바르게 처리합니다.
위 내용은 C#에서 거대한 문자열 표현 정수를 16진수로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!