[编程题-华为]进制转换
[编程题] 进制转换
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。
输入例子:
0xA
输出例子:
10
#include<iostream> #include<string> using namespace std; int toDigit(char c) { if(c>='a' && c<='f') return c-'a'+10; else if(c>='A' && c<='F') return c-'A'+10; else return c-'0'; } int main() { string s; while(cin>>s) { int n=s.size(); int x=0; for(int i=2;i<n;i++) x=x*16+toDigit(s[i]); cout<<x<<endl; } return 0; }