#include <iostream>
using namespace std;
int htod(char* h)
{
int LastDigit = 0;
int decimal = 0, value;
while(*(h + LastDigit)!='/0')
LastDigit++;
LastDigit--;
for(int j = LastDigit; j >= 0; j--)
{
value = 1;
for(int k = 0; k < LastDigit - j; k++)
value *= 16;
if(*(h+j) >= 65 && *(h+j) <= 70)
decimal += (*(h+j) - 55) * value;
else
decimal += (*(h+j) - 48) * value;
}
return decimal;
}
void main()
{
char hex[10];
cout<<"input 16"<<endl;
cin>>hex;
cout<<"output 10:"<<htod(hex)<<endl;
}
//增加函数十进制到十六进制
string Int2Hex(int a_iInt)
{
string strRet;
strRet = "";
// if a_iInt < 0 then return null;
if(a_iInt < 0)
{
return strRet;
}
int i;
int iTmp;
int iResidue; // the residue
int iQuotient; // the quotient
char cTmp;
for(iTmp = a_iInt;iTmp >= 16;)
{
iResidue = iTmp % 16;
iQuotient = iTmp / 16;
if(iResidue >= 10)
{
cTmp = 'A' + iResidue - 10;
}else // 0 <= iResidue <= 9
{
cTmp = '0' + iResidue;
}
strRet = cTmp + strRet;
iTmp = iQuotient;
}
if(iResidue >= 10)
{
cTmp = 'A' + iQuotient - 10;
}else // 0 <= iResidue <= 9
{
cTmp = '0' + iQuotient;
}
strRet = cTmp + strRet;
return strRet;
}