도움은 std::string님께서 해주셨습니다.

std::string str;

unsigned char buffer[4] = {0,};


for(int i = 0 ; i < size ; i++)

str.append(sprintf(buffer,"%02x", (int)(unsigned char)data.at(i)));

str.append(sprintf(buffer,"%02x", (unsigned char)data.at(i)));


주의사항


1. (unsigned char)로 형변환하는이유는 Hexa데이터의경우 0xFF까지쓰는 경우가많은데 그냥 signed char를 쓰면 정상적인 값이 안나올수있다. 

2. (int)로 2차형변환하는이유는 그냥 저상태에서 02x로 써버리면 숫자가아닌 문자로 인식된다. 따라서 어마어마한 삽질을 하게될가능성이높다.



+ Recent posts