题目
描述
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。
输入
输入一个十六进制的数值字符串。
输出
输出该数值的十进制字符串。
样例输入
0xA
样例输出
10
思路
按照要求进行转换。。。。
代码
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
string str;
cin>>str;
int len=str.size();
int sum=0,quan=1;
for(int i=len-1;i>1;i--)
{
if(str[i]>='0' &&str[i]<='9')
{
sum=sum+(str[i]-48)*quan;
quan=quan*16;
}
else if (str[i]>='A' &&str[i]<='F')
{
sum+=(str[i]-55)*quan;
quan*=16;
}
else if(str[i]>='a' &&str[i]<='f')
{
sum+=(str[i]-87)*quan;//'a'是97 去掉基数
quan*=16;
}
}
cout<<sum<<endl;
}
思路2
利用C++自带的进制转换。
代码2
#include<iostream>
using namespace std;
int main()
{
int val;
cin >> hex >> val;
cout << dec << val << endl;;
return 0;
}