十六进制字符串转换为十进制数
2009-04-03 10:32
281 查看
/*/////////////////////////////////////////////
// 把16进制字符串转换为10进制数
// Input: 16进制字符串
// Ouput: None
// Return: 10进制数
//////////////////////////////////////////////*/
int CXXXXX::strHexToInt(CString sSource)
{
int i = 0;
int nTemp = 0;
for(char cc='G',dd='g'; cc<='Z',dd<='z'; cc++,dd++) //判断输入的字符串是否合法
{
if(sSource.Find(cc,0) !=-1 || sSource.Find(dd,0) !=-1)
{
::MessageBox(NULL,"请输入正确的16进制字符串!","输入错误",MB_ICONEXCLAMATION);
return -1;
}
}
for(i = 0; i<(int)::strlen(sSource); i++)
{
int nDecNum;
switch(sSource[i])
{
case 'a':
case 'A': nDecNum = 10; break;
case 'b':
case 'B': nDecNum = 11; break;
case 'c':
case 'C': nDecNum = 12; break;
case 'd':
case 'D': nDecNum = 13; break;
case 'e':
case 'E': nDecNum = 14; break;
case 'f':
case 'F': nDecNum = 15; break;
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9': nDecNum = sSource[i] - '0'; break;
default: return 0;
}
nTemp += nDecNum * (int)::pow(16,::strlen(sSource)-i -1);
}
return nTemp;
}
// 把16进制字符串转换为10进制数
// Input: 16进制字符串
// Ouput: None
// Return: 10进制数
//////////////////////////////////////////////*/
int CXXXXX::strHexToInt(CString sSource)
{
int i = 0;
int nTemp = 0;
for(char cc='G',dd='g'; cc<='Z',dd<='z'; cc++,dd++) //判断输入的字符串是否合法
{
if(sSource.Find(cc,0) !=-1 || sSource.Find(dd,0) !=-1)
{
::MessageBox(NULL,"请输入正确的16进制字符串!","输入错误",MB_ICONEXCLAMATION);
return -1;
}
}
for(i = 0; i<(int)::strlen(sSource); i++)
{
int nDecNum;
switch(sSource[i])
{
case 'a':
case 'A': nDecNum = 10; break;
case 'b':
case 'B': nDecNum = 11; break;
case 'c':
case 'C': nDecNum = 12; break;
case 'd':
case 'D': nDecNum = 13; break;
case 'e':
case 'E': nDecNum = 14; break;
case 'f':
case 'F': nDecNum = 15; break;
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9': nDecNum = sSource[i] - '0'; break;
default: return 0;
}
nTemp += nDecNum * (int)::pow(16,::strlen(sSource)-i -1);
}
return nTemp;
}
相关文章推荐
- 在delphi中,如何把十进制数转换为十六进制整形数。若用inttohex只能转化为十六进制字符串。
- 递归把十六进制(字符串表示)转换称十进制数
- SQL 实现十进制数和十六进制字符串互相转换
- 【字符串处理函数】十六进制字符串转换为十进制数
- C#控制台基础 将十六进制的字符串 转换成 十进制数
- 霍纳算法,将十六进制字符串转换为十进制数的高效算法
- 十进制数与十六进制字符串的转换
- VC中,如何将十六进制字符串转换为十进制数?
- VC中,如何将十六进制字符串转换为十进制数?
- 十六进制字符串转换成对应十进制数的函数
- MSDN将字节数组转换为十六进制值字符串时 Byte 的用法
- 将一个十六进制“字符串”转换为十进制数值的问题
- C语言将字符串转换成对应的数字(十进制、十六进制)
- C语言将字符串转换成对应的数字(十进制、十六进制)
- 将数值转换为表示十进制数的字符串2
- linux下字符串与十六进制之间的转换
- 将字节转换成十六进制字符串
- ABAP的字符串与十六进制的相互转换
- VC中 十六进制字符串转换为十进制数字
- VB下较为高效的字节和十六进制字符串转换