string에서 16진수로 변환하기
string에서 16진수로 변환하기 위해서는 우선 각각의 string을 한글자씩 char 요소로 분해해서 이를 바이트로 출력하면 된다. 이때 바이트로 변환되는 값은 10진수이다.
public static byte[] ConvertToByte(string str)
{
byte[] bytes = new byte[str.Length];
int i = 0;
foreach (char c in str)
{
bytes[i++] = Convert.ToByte(c);
}
return bytes;
}
전체 예제 코드
using System;
public partial class Program
{
static void Main(string[] args)
{
int i = 0;
string name = "Functional C#";
var result = ConvertToByte(name);
// Format specifier
foreach (var s in name)
{
Console.WriteLine($"{s} = 0x{result[i]:X2} ({result[i++]})");
}
Console.WriteLine();
// Convert.ToHexString()
Console.WriteLine(Convert.ToHexString(result));
// byte.ToString("X2")
foreach (var b in result)
{
Console.Write(b.ToString("X2"));
}
}
public static byte[] ConvertToByte(string str)
{
byte[] bytes = new byte[str.Length];
int i = 0;
foreach (char c in str)
{
bytes[i++] = Convert.ToByte(c);
}
return bytes;
}
}
0x{result[i]:X2}로 출력하면 2자리수의 16진수로 표기된다.
함께 읽으면 좋은 글
'프로그래밍 > C#' 카테고리의 다른 글
C# for 반복문 작성 시 후위 증가 연산자를 쓰는 이유 (2) | 2024.03.29 |
---|---|
C# 재귀 호출 동작 방식 (1) | 2024.03.29 |
식 트리와 람다식 (0) | 2024.03.27 |
C# 공변성(Covariance)이란 무엇인가? (0) | 2024.03.26 |
C# 제네릭 대리자(Generic Delegate) (1) | 2024.03.26 |
댓글