다음 코딩을 사용하여 16 진수를 정수로 변환했습니다. [내 알고리즘]HtoI [HexaDecimal to Integer] - Ascii 코드 사용
private static void ConvertFromBase16(string value)
{
value = value.ToUpper();
int result = 0;
int incrementor = 0;
for (int i = value.Length-1; i >= 0; i--)
{
char c = value[i];
char number;
if (c > 64)
{
number = (char)(c - 55); //Ascii character for A start from 65.in hex
//its 10, so i have subtracted 55 from it.
}
else
{
number = (char)(c - 48); //Ascii character for 0 is 48, so subtracting
//48
}
int n = (int) number;
result += (number* (int) Math.Pow(16 , incrementor));
incrementor++;
}
Console.WriteLine(result);
}
위의 코드에서 알 수 있듯이 위의 코드에서는 변환을 위해 전통적인 문자 조건보다 ascii 문자를 사용했습니다. 이것이 모든 OS에서 작동하고 적절한 결과를 창출 할 수 있을지는 의문입니다.
제발 나에게 이것이 올바른 접근법인지와 오류 발생 가능성이 없는지 제언 할 수 있습니까?
추 신 : 저는 세계화 문화와 함께 .net 기본 라이브러리 메소드 int.parse를 사용하여 변환합니다. 데이터 구조 개념을 배우기 위해이 작업을 수동으로 수행하려고합니다. 따라서 기본 .net 라이브러리에서 편리하게 아무것도 게시하지 마십시오.
Nice입니다. 그리고 경우에 사용 (c> = 'A') – sukunrt
ASCII 코드는 일반적입니다. http://en.wikipedia.org/wiki/ASCII 나는 믿을 변화가 없을 것이다. 귀하의 제안에 대해 감사 드리며 어떻게 C 또는 C++로 완료했는지에 대해 감사드립니다. 올바른 길을 가졌는지에 대한 생각. :) – VIRA