十六进制转十进制

转载请注明出处:http://www.cnblogs.com/zhishoumuguinian/p/8406432.html

问题描述
  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
 
#include<bits/stdc++.h>
#include <string>
using namespace std;

int main()
{
    long long sum=0;
    string s;
    cin>>s;
    long long n=s.size();
    long long  x=1;
    for(int i=n-1; i>=0; i--)
    {
        if(s[i]<='9'&&s[i]>='0')
        {
            sum+=(s[i]-'0')*x;
        }
        if(s[i]>='A'&&s[i]<='F')
        {
            sum+=(s[i]-'A'+10)*x;
        }
        x*=16;
    }
    cout<<sum;
}

 

posted @ 2018-02-02 18:20  nefuer  阅读(365)  评论(0)    收藏  举报