蓝桥杯 基础练习 十六进制转十进制

来源:互联网 发布:qq邮箱mac电脑版下载 编辑:程序博客网 时间:2024/06/06 01:53
基础练习 十六进制转十进制  
时间限制:1.0s   内存限制:512.0MB
      
问题描述
  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出

65535



代码:

#include<iostream>
#include<math.h>
#include<string.h>
using namespace std;
int arr[16]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int main()
{
string b;
int length,i;
long long sum=0;//否则输入为FFFFFFFF时,超出限制
cin>>b;
length=b.length();
for(i=0;i<length;i++)
 {
 int c=b[i];
 if(c>57)//判断取出的字符是否>‘9’
 {
   
   sum+=pow(16,length-i-1)*arr[c-55];
 }
 else
 {
  sum+=pow(16,length-i-1)*arr[c-48];
   }
 }
cout<<sum;
return 0;

}

0 0