unsigned char 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 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;
}
'C & C++ > C & C++' 카테고리의 다른 글
파일 읽기 (0) | 2011.12.14 |
---|---|
MFC 잡다한거 (0) | 2011.12.14 |
Notepad++공개소스 안에 포함된 UTF8, UTF16에 대한 소스 (0) | 2011.12.14 |
윈도우 로그아웃 이벤트 (0) | 2011.12.14 |
비스타(Vista), 윈도우7 에서 사용자 계정 폴더 가져오는 함수 (0) | 2011.12.14 |
댓글