今天一朋友让帮忙做一个解析程序,我想还不知道什么是解析,就让他把他出错的程序发过来看看,一看才知道,他说的解析只是把从文件中读出来的内容由16进制转换成10进制。我就自己帮他写了个函数给他用,也不知道还有没有什么bug。发上来看看。
因为他的数据只有byte类型,所以就用了byte。
byte CFontLibDlg::TranslateHexToDecimal(CString &str)
{
str.MakeUpper();
byte b = 0, bRet = 0;
for (int i = str.GetLength() - 1; i >= 0; --i)
{
if (str.GetAt(i) >= 'A' && str.GetAt(i) <= 'F')
b = str.GetAt(i) - 55;
else if (str.GetAt(i) >= '0' && str.GetAt(i) <= '9')
b = str.GetAt(i) - 0x30;
else
break;
bRet += b * pow(16, str.GetLength() - 1 - i);
}
return bRet;
}