写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。(多组同时输入 )
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。
输入例子1:
0xA输出例子1:
10
思路
为了方便处理,将字符串中的字符全部转成小写后再处理
#include<bits/stdc++.h>
using namespace std;
// 获取字符对应的数字
int getNum(char ch){
// 数字
if(isdigit(ch))
return int(ch- '0');
// 英文字符
return int(ch- 'a'+ 10);
}
int main(){
string str;
while(cin>>str){
// 为了方便处理,将字符全部转成小写
transform(str.begin(), str.end(), str.begin(), ::tolower);
str= str.substr(2);
int len= str.length();
int result= 0;
for(int i= 0; i< len; ++i){
result= result*16+ getNum(str[i]);
}
cout<<result<<endl;
}
return 0;
}