十六进制转化成十进制

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值