题目描述:
写一个函数,实现输入一个十六进制整数,输出相应的十进制数的功能。
输入格式:
只有一行,包含一个十六进制正整数。保证输入格式中所有英文字母部分(’a’至’f’)均为小写字母,且换算出的十进制整数在0至1000000范围之内。
输出格式:
输出相应的十进制数。
请注意行尾输出换行。
样例输入:
ff
样例输出:
255
提示:
本题读入注意一下:
没有告诉你十六进制数多少位,这时我们要读到文件结束为止。
使用while (cin >>c ){
}
在屏幕上输完后要结束了,请输入ctrl +z。
时间限制: 1000ms
空间限制: 32MB
代码实现:
#include<bits/stdc++.h>
using namespace std;
string c;
long long a[100001],n,f=0;
int main(){
cin>>c;
for(int i=c.length();i>=1;i--){
int temp=c[i-1]-'0';
if(c[i-1]>='a'&&c[i-1]<='f')temp=10+c[i-1]-'a';
n+=temp*pow(16,c.length()-i);
}
cout<<n;
return 0;
}