问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。 注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。 样例输入 FFFF 样例输出 65535
#include<iostream> #include<string> #include<bits/stdc++.h> using namespace std; int main() { string s; int len; while(cin>>s) { long long int sum=0; len=s.length(); for(int i=0;i<len;i++) { if(s[i]-'0'<=9) sum+=(s[i]-'0')*pow(16,len-1-i); else if(s[i]=='A') sum+=10*pow(16,len-1-i); else if(s[i]=='B') sum+=11*pow(16,len-1-i); else if(s[i]=='C') sum+=12*pow(16,len-1-i); else if(s[i]=='D') sum+=13*pow(16,len-1-i); else if(s[i]=='E') sum+=14*pow(16,len-1-i); else sum+=15*pow(16,len-i-1); } cout<<sum<<endl; } return 0; }