본문 바로가기
프로그래밍/MFC

MFC 유니코드 ASCII 변환

by 완소루피 2020. 11. 2.
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