Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 16진수 문자열을 숫자로 변환하는 방법

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 옵션을 조합하는 방법도 함께 고려해 볼 수 있습니다.