도움은 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로 써버리면 숫자가아닌 문자로 인식된다. 따라서 어마어마한 삽질을 하게될가능성이높다.
'C++' 카테고리의 다른 글
선형대수학자료 (0) | 2017.08.07 |
---|---|
윈도우와 리눅스에서 MacAddress가져오기 (0) | 2017.06.01 |
CMFCProperty 커스터마이징해서 프로퍼티안에 체크박스넣는 클래스인데.. (0) | 2016.12.15 |
옛날에 만든 Hex Stream 으로 wireshark세이브 파일 포맷로그저장하는 클래스! (0) | 2016.12.15 |
로컬의 Mac값 알아내기 +_+ (0) | 2016.12.15 |