C# HEX코드 활용법
안녕하세요.
C#에서 HEX 코드 변환은 색상 코드 또는 숫자를 16진수(HEX) 문자열로 변환하거나, 16진수 문자열을 숫자 또는 색상으로 변환하는 작업을 의미합니다. 이 과정은 주로 웹 개발, 그래픽 프로그래밍, 데이터 처리 등에서 사용됩니다.
# 예제 1: 정수를 16진수 문자열로 변환하기
C#에서 정수를 16진수 문자열로 변환하기 위해 ToString 메서드를 사용할 수 있습니다.
using System;
class Program
{
static void Main()
{
int number = 255;
string hexValue = number.ToString("X");
Console.WriteLine("Decimal: " + number);
Console.WriteLine("Hex: " + hexValue);
}
}
- number.ToString("X"):
- 숫자 255를 16진수로 변환하여 "FF"라는 문자열로 출력합니다.
- "X"는 대문자 16진수를, "x"는 소문자 16진수를 나타냅니다.
결과:
Decimal: 255
Hex: FF
# 예제 2: 16진수 문자열을 정수로 변환하기
16진수 문자열을 정수로 변환하기 위해 Convert.ToInt32 메서드를 사용할 수 있습니다.
using System;
class Program
{
static void Main()
{
string hexValue = "FF";
int number = Convert.ToInt32(hexValue, 16);
Console.WriteLine("Hex: " + hexValue);
Console.WriteLine("Decimal: " + number);
}
}
- Convert.ToInt32(hexValue, 16):
- 16진수 문자열 "FF"를 10진수 정수 255로 변환합니다.
결과:
Hex: FF
Decimal: 255
# 예제 3: RGB 색상을 HEX 코드로 변환하기
RGB 색상 값을 16진수로 변환하여 HEX 색상 코드를 생성할 수 있습니다.
using System;
class Program
{
static void Main()
{
int red = 255;
int green = 99;
int blue = 71;
string hexColor = $"#{red:X2}{green:X2}{blue:X2}";
Console.WriteLine("RGB: ({0}, {1}, {2})", red, green, blue);
Console.WriteLine("Hex: " + hexColor);
}
}
- red:X2:
- X2 포맷은 정수를 2자리 16진수로 변환합니다. 값이 한 자리일 경우 앞에 0을 추가합니다.
- #{red:X2}{green:X2}{blue:X2}:
- RGB 값을 결합하여 웹에서 사용 가능한 #FF6347 같은 HEX 색상 코드를 만듭니다.
결과:
RGB: (255, 99, 71)
Hex: #FF6347
# 예제 4: HEX 색상 코드를 RGB로 변환하기
HEX 색상 코드를 다시 RGB 값으로 변환하려면, 문자열을 파싱하여 각각의 색상 값으로 변환할 수 있습니다.
using System;
class Program
{
static void Main()
{
string hexColor = "#FF6347";
int red = Convert.ToInt32(hexColor.Substring(1, 2), 16);
int green = Convert.ToInt32(hexColor.Substring(3, 2), 16);
int blue = Convert.ToInt32(hexColor.Substring(5, 2), 16);
Console.WriteLine("Hex: " + hexColor);
Console.WriteLine("RGB: ({0}, {1}, {2})", red, green, blue);
}
}
- hexColor.Substring(1, 2):
- HEX 코드에서 #을 제외하고 각 색상 부분을 추출합니다. 예를 들어, FF, 63, 47을 각각 추출합니다.
- Convert.ToInt32(..., 16):
- 추출한 16진수 문자열을 10진수 정수로 변환합니다.
결과:
Hex: #FF6347
RGB: (255, 99, 71)
# 예제 5: 바이트 배열을 HEX 문자열로 변환하기
바이트 배열을 16진수 문자열로 변환할 수도 있습니다. 이는 파일 해시, 암호화 키 등의 데이터를 표시할 때 유용합니다.
using System;
class Program
{
static void Main()
{
byte[] bytes = { 0xDE, 0xAD, 0xBE, 0xEF };
string hexString = BitConverter.ToString(bytes).Replace("-", "");
Console.WriteLine("Byte Array: " + BitConverter.ToString(bytes));
Console.WriteLine("Hex String: " + hexString);
}
}
- BitConverter.ToString(bytes):
- 바이트 배열을 16진수 문자열로 변환합니다. 기본적으로 하이픈(-)으로 구분되는데, 이를 Replace("-", "")로 제거할 수 있습니다.
결과:
Byte Array: DE-AD-BE-EF
Hex String: DEADBEEF
# 결론
C#에서 HEX 코드 변환은 다양한 형식의 데이터 변환에 유용합니다. 정수를 16진수로 변환하거나, HEX 색상 코드를 RGB로 변환하는 등 여러 시나리오에서 활용할 수 있습니다. ToString, Convert.ToInt32, BitConverter 등의 메서드를 사용하여 쉽게 구현할 수 있습니다.
감사합니다.
(chat gpt 참고)