试题 基础练习 十六进制转十进制
资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
进制转换麻烦极了
#include<iostream>
using namespace std;
#include<cmath>
#include<cstring>
int main(){
char a[8];
char hex[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
int i=0;
long long num=0;
cin>>a;
i=strlen(a);
i=i-1;
int c=i;
for(int j=0;j<=c;j++){
for(int k=0;k<16;k++){
if(a[j]==hex[k]){
num+=k*pow(16,i--);
break;
}
}
}
cout<<num;
return 0;
}