#include<iostream>
#include<cstring>
using namespace std;
int getHexChar(char hexchar)
{
if (hexchar>='0'&&hexchar<='9')
{
return hexchar - '0';
}
else if(hexchar>='a'&&hexchar<='f')
{
return hexchar - 'a' + 10;
}
else return 0;
}
int hexToDecimal(char* hex)
{
int len = strlen(hex);
int t = 1,sum = 0,i;
for (i = len - 1; i >= 2; i--)
{
sum += t * getHexChar(*(hex + i));
t *= 16;
}
return sum;
}
int main()
{
char *hex = new char[7];
cin >> hex;
cout << hexToDecimal(hex)<<endl;
delete[] hex;
}
日常水题没啥好说的。
题目规定了位数和int hexToDecimal(char* hex)这个函数,这题才这么做的,实际改一改数组就行。