以下代码是把十六进制字符串转化为十进制数值
转换函数是hexStr2decimal,代码如下。
#include <iostream>
#include <map>
#include <string>
#include <math.h>
using namespace std;
//function transfer hex string to deciaml
bool hexStr2decimal(string &str, int &decimal)
{
if(str[]=='0'&& str[]=='x'){
decimal = ;
int strSize = str.size();
for(int i=; i<strSize; i++){
if(str[i]<='9' && str[i]>='0')
decimal += static_cast<int>((str[i]-'0')*pow(,strSize-i-));
else if(str[i]<='F' && str[i]>='A')
decimal += static_cast<int>((str[i]-'A'+)*pow(,strSize-i-));
else
return false;
}
return true;
}else{
return false;
}
}
int main()
{
string str;
int decimal;
while(cin>>str){
if(hexStr2decimal(str,decimal))
cout<<decimal<<endl;
}
return ;
}