1257: 【入门】十六进制转十进制(1292)

内存限制:16 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:6 解决:5

题目描述

请将一个不超过10位的十六进制正整数转换为十进制整数!

输入

10位以内的十六进制整数

输出

该数对应的十进制整数

样例输入 复制

2ECF

样例输出 复制

11983

提示

#include<bits/stdc++.h>
using namespace std;
string s; 
//t:表示权重,也就是16的i次方 
long long r,t=1,i;
int main(){
    cin>>s;
    //逆序计算,按权展开 
    for(i=s.size()-1;i>=0;i--) {
    	//如果s[i]是'0'~'9' 
    	if(isdigit(s[i])){
    		r=r+(s[i]-'0')*t;
		}else{
			r=r+(s[i]-'A'+10)*t;
		}
		t=t*16;
	}
	cout<<r;  
	return 0;
}