728x90
반응형
# Hex to Int
INT Util::HexToInt(CString szHexStr)
{
int nLen = szHexStr.GetLength();
TCHAR * tchHex = (TCHAR *)(LPCTSTR)szHexStr;
INT nResult = 0;
for(int i=0;i<nLen;i++)
{
TCHAR tchCh = 0;
if(tchHex[i] >= L'0' && tchHex[i] <= L'9')
tchCh = (tchHex[i] - 0x0030) & 0x000F;
else if(tchHex [i] >= L'A' && tchHex[i] <= L'F')
tchCh = (tchHex[i] - 0x0037) & 0x000F;
else
return 0; // 정상 Character가 아닌경우 0 리턴
nResult |= (tchCh << ((nLen-1) - i) * 4);
}
return nResult;
}
INT Util::HexToInt(TCHAR* strHex, int nSize)
{
INT nResult = 0;
for(int i=0;i<nSize;i++)
{
TCHAR tchCh = 0;
if(strHex[i] >= L'0' && strHex[i] <= L'9')
tchCh = (strHex[i] - 0x0030) & 0x000F;
else if(strHex [i] >= L'A' && strHex[i] <= L'F')
tchCh = (strHex[i] - 0x0037) & 0x000F;
else
continue; // 정상 Character가 아닌경우 0 리턴
nResult |= (tchCh << ((nSize-1) - i) * 4);
}
return nResult;
}
# Int to Hex
CString Util::IntToHex(CString strInt)
{
CString str;
str.Format(_T("%X"), _ttol(strInt));
return str;
}
CString Util::IntToHex(int nInt)
{
CString str;
str.Format(_T("%X"), nInt);
return str;
}
# Hex to ASCII
CString Util::HexToAscii(CString strHex)
{
return HexToAscii(strHex.GetBuffer(), strHex.GetLength());
}
CString Util::HexToAscii(TCHAR* strHex, int nSize)
{
CString strTemp;
CString strOutput=_T("");
strTemp.Format(_T("%s"), strHex);
for(int i=0; i<nSize/2; i=i++)
{
TCHAR strChar[3];
int num=0;
_tcscpy_s(strChar, strTemp.Mid(i*2, 2) );
num=HexToInt(strChar,2);
//output.Format("%d ",num);
strOutput+=(char)num;
}
return strOutput;
}
# Char To Int
INT Util::CharToInt(TCHAR strChar)
{
return static_cast<int>(strChar);
}
# Int to Char
TCHAR Util::IntToChar(int nInt)
{
return static_cast<TCHAR>(nInt);
}
728x90
반응형
'프로그래밍 > MFC' 카테고리의 다른 글
MFC 비트맵 이미지 (0) | 2020.11.02 |
---|---|
MFC 그리기 모드 (0) | 2020.11.02 |
MFC 현재 사용중인 IP 가져오기 (0) | 2020.11.02 |
MFC 멀티바이트 To 유니코드 (0) | 2020.11.02 |
MFC 타입 변환(Hex to ASCII) (0) | 2020.11.02 |