C# 에서 Binary To Hex, Hex To Binary 관련된 로직(속도가 빠르다네요)

아래 방법말고도 string.Format 이나 BitConvert.tostring() 을 활용해도 되지만
작성자의 말로는 속도가 빠르다고 하는군요.. 음.. 데이터는 맞으니, 믿어보죠.
참고로 3M 이상의 데이터는 변환안됩니다. 아마도 StringBuilder 의 한계인듯..
다른 방법을 써야겠죠.. 그부분은 알아서.. 그럴 일도 없겠지만.. ㅎㅎ



public static string ByteArrayToHexString(byte[] Bytes)



    StringBuilder Result = new StringBuilder(); 
    string HexAlphabet = “0123456789ABCDEF”; 
  
    foreach (byte B in Bytes) 
        { 
        Result.Append(HexAlphabet[(int)(B >> 4)]); 
        Result.Append(HexAlphabet[(int)(B & 0xF)]); 
        } 
  
    return Result.ToString(); 

  
public static byte[] HexStringToByteArray(string Hex) 

    byte[] Bytes = new byte[Hex.Length / 2]; 
    int[] HexValue = new int[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 
                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x0B, 0x0C, 0x0D, 
                                 0x0E, 0x0F }; 
  
    for (int x = 0, i = 0; i < Hex.Length; i += 2, x += 1) 
        { 
        Bytes[x] = (byte)(HexValue[Char.ToUpper(Hex[i + 0]) – ‘0’] << 4 | 
                          HexValue[Char.ToUpper(Hex[i + 1]) – ‘0’]); 
    } 
  
    return Bytes; 
}

댓글

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다