MFC - 문자열을 숫자로 변환하기 (HEX to DEC)

2014. 3. 20. 18:52Programing/MFC

unsigned char CParser::HexToByte(char hex)
{
 switch(hex)
 {
  case '0': 
   return 0;
  case '1': 
   return 1;
  case '2':
   return 2;
  case '3': 
   return 3;
  case '4': 
   return 4;
  case '5': 
   return 5;
  case '6': 
   return 6;
  case '7': 
   return 7;
  case '8': 
   return 8;
  case '9': 
   return 9;
  case 'A': 
  case 'a': 
   return 10;
  case 'B': 
  case 'b': 
   return 11;
  case 'C': 
  case 'c': 
   return 12;
  case 'D': 
  case 'd': 
   return 13;
  case 'E': 
  case 'e': 
   return 14;
  case 'F': 
  case 'f': 
   return 15;
 }
 return 32;
}


unsigned int CParser::hextoi(CString strHex)
{
 unsigned char bin[8] = {0,};
 unsigned int m_nDEC = 0;

 int nLen = strHex.GetLength();
 if (nLen > 8)
  return -1;

 for (int i=0 ; i<nLen ; i++) 
 {
  bin[i] = HexToByte(strHex[(nLen-1) - i]);
  if(bin[i] >= 0 && bin[i] <= 15) 
  {    // 0 ~ A ~ F
   m_nDEC += bin[i] << (4*i);     // 10진수 출력
  }
  else if (bin[i] == 32) 
  {
   return -1;
  }
 }
 return m_nDEC;
}