C# 프로그래밍을 하다 보면 "7D"처럼 16진수 형태로 표현된 문자열을 실제 숫자 값으로 변환해야 하는 경우가 자주 발생합니다. 이 글에서는 Convert.ToSByte()와 Convert.ToInt32() 메서드를 활용해 16진수 문자열을 손쉽게 변환하는 방법을 알아보겠습니다.
1. 16진수 문자열 준비하기
먼저 변환할 16진수 문자열을 설정합니다.
string str = "7D";
2. Convert.ToSByte() 메서드로 변환하기
Convert.ToSByte() 메서드는 두 개의 매개변수를 받습니다. 첫 번째 인자는 변환할 문자열이며, 두 번째 인자는 해당 문자열의 진수(밑수)를 의미합니다. 16진수로 해석하려면 두 번째 인자에 16을 전달하면 됩니다.
Console.WriteLine(Convert.ToSByte(str, 16));
전체 코드는 다음과 같습니다.
예제 코드
using System;
namespace Demo {
public class Program {
public static void Main(string[] args) {
string str = "7D";
Console.WriteLine(Convert.ToSByte(str, 16));
}
}
}실행 결과
125
16진수 7D는 십진수로 125에 해당하므로, 콘솔에 125가 출력됩니다.
3. Convert.ToInt32() 메서드로 변환하기
Convert.ToSByte()는 표현할 수 있는 범위가 -128 ~ 127로 제한되어 있습니다. 따라서 더 큰 값을 다뤄야 한다면 Convert.ToInt32() 메서드를 사용하는 것이 좋습니다. 사용 방법은 동일하게 두 번째 인자에 16을 전달하면 됩니다.
예제 코드
using System;
namespace Demo {
public class Program {
public static void Main(string[] args) {
string str = "7D";
Console.WriteLine(Convert.ToInt32(str, 16));
}
}
}실행 결과
125
마무리
정리하면, C#에서 16진수 문자열을 숫자로 변환할 때는 Convert.ToSByte(str, 16) 또는 Convert.ToInt32(str, 16)을 사용하면 됩니다. 값의 크기에 따라 적절한 메서드를 선택하고, 필요하다면 int.Parse()와 NumberStyles.HexNumber 옵션을 조합하는 방법도 함께 고려해 볼 수 있습니다.