十六进制转化成十进制

来源:互联网 发布:类似于拍拍贷的软件 编辑:程序博客网 时间:2024/04/26 09:08

#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;
}

原创粉丝点击