본문 바로가기
프로그래밍/C#

C# string에서 16진수로 변환하기

by bantomak 2024. 3. 28.

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# 숫자 서식 지정자(Number Format Specifier)

표준 출력 형식의 문법 {n,w:tp} 예시 : {0,10:N2} 키워드 명칭 n 인자 Argument w 출력 범위 Width t 데이타 타입 Data Type p 정확도 Precision decimal val = 1234.5678M; string s = string.Format("{0,10:N2}", val); // 출력: " 1,234.

jettstream.tistory.com

댓글