[C#][Study] BitConverter.ToString

LimJaeJun·2024년 5월 27일

Study

목록 보기
16/16

BitConverter.ToString

메서드 시그니처

public static string ToString(byte[] value);
public static string ToString(byte[] value, int startIndex, int length);

주어진 바이트 배열을 16진수 문자열로 변환합니다. 기본적으로, 배열의 각 바이트는 두 자리 16진수로 변환되며, 각 바이트는 하이픈('-')으로 구분됩니다.

매개변수

value ( Type: Byte[] )
변환할 2바이트를 포함하는 바이트 배열입니다.

startIndex ( Type: Int32 )
value 내의 시작 위치입니다.

length ( Type: Int32 )
변환할 바이트 수입니다.

동작 원리

  1. 전체 바이트 배열 변환 (ToString(byte[] value)):
    입력된 바이트 배열의 각 바이트를 순차적으로 16진수 문자열로 변환합니다.
    각 바이트는 두 자리 16진수로 변환됩니다. 예를 들어, 바이트 값 0x1A는 문자열 "1A"로 변환됩니다.
    변환된 각 바이트 문자열은 하이픈('-')으로 구분됩니다.

  2. 부분 바이트 배열 변환 (ToString(byte[] value, int startIndex, int length)):
    startIndex부터 시작하여 length만큼의 바이트를 변환합니다.
    나머지 과정은 전체 바이트 배열 변환과 동일합니다.

예제

using System;

class Program
{
    static void Main()
    {
        byte[] arr = { 0x1A, 0x2B, 0x3C, 0x4D, 0x5E };

        // 전체 배열 변환
        string result = BitConverter.ToString(arr);
        Console.WriteLine(result);  // 출력: "1A-2B-3C-4D-5E"

        // 부분 배열 변환
        string partialResult = BitConverter.ToString(arr, 1, 3);
        Console.WriteLine(partialResult);  // 출력: "2B-3C-4D"
    }
}

유효성 검사

BitConverter.ToString 메서드는 몇 가지 유효성 검사를 수행합니다:
1. value가 null이면 ArgumentNullException 예외가 발생합니다.
2. startIndex가 음수이거나 startIndex가 value의 길이보다 크거나 같으면 ArgumentOutOfRangeException 예외가 발생합니다.
3. length가 음수이거나 startIndex + length가 value의 길이보다 크면 ArgumentOutOfRangeException 예외가 발생합니다.


출처:
https://learn.microsoft.com/ko-kr/dotnet/api/system.bitconverter.tostring?view=netframework-4.6

profile
Dreams Come True

0개의 댓글