C#에서는 문자열 형식 지정자(format specifier)를 활용하면 정수를 간단하게 16진수로 변환할 수 있습니다. 이번 글에서는 x 및 X 형식 지정자를 사용하는 방법과 자릿수 패딩 옵션까지 함께 살펴보겠습니다.
예제 숫자
먼저 다음과 같은 정수 변수가 있다고 가정해 보겠습니다.
int a = 12250;
16진수 형식 지정자의 종류
숫자를 16진수 형식으로 표현하려면 아래 네 가지 방식을 사용할 수 있습니다.
{0:x}
{0:x8}
{0:X}
{0:X8}각 지정자의 의미는 다음과 같습니다.
- {0:x} — 영문 소문자로 된 16진수를 출력합니다.
- {0:x8} — 소문자 16진수를 출력하되, 총 8자리가 되도록 앞을 0으로 채웁니다(패딩).
- {0:X} — 영문 대문자로 된 16진수를 출력합니다.
- {0:X8} — 대문자 16진수를 출력하며, 마찬가지로 8자리로 맞춥니다.
전체 예제 코드
아래는 네 가지 형식 지정자를 모두 사용해 본 완전한 C# 프로그램입니다.
using System;
class Demo {
static void Main() {
int a = 12250;
Console.WriteLine("{0:x}", a);
Console.WriteLine("{0:x8}", a);
Console.WriteLine("{0:X}", a);
Console.WriteLine("{0:X8}", a);
}
}실행 결과
2fda 00002fda 2FDA 00002FDA
정리
소문자 x와 대문자 X의 차이는 결과에 포함되는 영문자(a~f 또는 A~F)의 대소문자뿐입니다. 또한 지정자 뒤에 숫자를 붙이면 해당 자릿수만큼 왼쪽이 0으로 채워지므로, 고정 폭의 16진수 문자열이 필요할 때 유용하게 활용할 수 있습니다.