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