Application/MFC

[MFC] 16진수 변환(CString <-> BYTE)

devsalix 2023. 7. 6. 09:58
728x90

CString의 문자열을 16진수로 변환하고자 할 때 사용하는 함수입니다

 

wcstol 함수이며

 

사용 방법은 아래와 같습니다

 

CString strMacAddress = _T("1A2B3C4D");
WCHAR szData[9];
BYTE szValue[4];

wcscpy_s(szData, strData);

szValue[0] = (BYTE)wcstol(((WCHAR *)szData) + 0, NULL, 16);
szValue[1] = (BYTE)wcstol(((WCHAR *)szData) + 2, NULL, 16);
szValue[2] = (BYTE)wcstol(((WCHAR *)szData) + 4, NULL, 16);
szValue[3] = (BYTE)wcstol(((WCHAR *)szData) + 6, NULL, 16);


위와 같이 코드를 작성해 주면 문자열을 16진수로 변경 가능 합니다

 

반대로 16진수를 문자열로 변경을 원한다면 간단한 Format으로 표현이 가능합니다

 

CString strValue;
BYTE szValue[2];

szValue[0] = 0x1A;
szValue[1] = 0x2B;

strValue.Format(_T("%02X%02X"), szValue[0], szValue[1]);

 

위와 같이 코드를 작성하면 1A2B 값이 strValue 문자열에 들어갑니다

 

 


제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀

 

 
728x90
반응형