C#에서 16진수("X") 형식 지정자는 숫자 값을 16진수 문자열로 변환할 때 사용합니다. ToString() 메서드와 함께 활용되며, 정수 계열 숫자를 손쉽게 16진수 표기로 바꿀 수 있습니다.
대문자 X와 소문자 x의 차이
형식 지정자의 대소문자에 따라 출력 결과도 달라집니다. 16진수에서 9보다 큰 값은 알파벳 문자(A~F)로 표현되는데, 이때 지정자의 대소문자가 그대로 적용됩니다.
- "X" → A~F가 대문자로 출력됩니다. (예: 149A8C80)
- "x" → a~f가 소문자로 출력됩니다. (예: 307e)
자릿수 지정하기
형식 지정자 뒤에 숫자를 붙이면 결과 문자열의 최소 자릿수를 지정할 수 있습니다. 예를 들어 "X2"는 결과가 두 자리보다 짧을 경우 앞을 0으로 채워 두 자리 이상으로 맞춰 줍니다.
예제 코드
using System;
using System.Numerics;
using System.Globalization;
class Demo {
static void Main() {
int num;
// 10진수를 16진수로 변환
num = 345672832;
Console.WriteLine(num.ToString("X")); // 대문자 출력
Console.WriteLine(num.ToString("X2")); // 최소 2자리 보장
// 16진수 리터럴을 다시 문자열로 변환
num = 0x307e;
Console.WriteLine(num.ToString("x")); // 소문자 출력
Console.WriteLine(num.ToString("X")); // 대문자 출력
}
}실행 결과
149A8C80 149A8C80 307e 307E
정리
"X" 형식 지정자는 디버깅 시 메모리 주소 확인, 비트 연산 결과 검토, 색상 코드 처리 등 다양한 상황에서 유용하게 쓰입니다. 대소문자 지정과 자릿수 옵션만 기억해 두면 원하는 형태의 16진수 문자열을 간단히 얻을 수 있습니다.