华为机试 进制转化

题目描述

写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )

输入描述:

输入一个十六进制的数值字符串。

输出描述:

输出该数值的十进制字符串。

示例1

输入

0xA

输出

10
#include<bits/stdc++.h>
using namespace std;
int sum = 0;
void Zh(string s)
{
    reverse(s.begin(),s.end());
    int len = s.length();
    sum = 0;
    for(int i=0;i<len-2;i++)
    {
        int t;
        if(s[i]>='A'&&s[i]<='A'+6)
            t = s[i]-'A'+10;
        else
            t = s[i]-'0';
        //cout<<t<<endl;
        sum += pow(16,i)*t;
    }
    printf("%d\n",sum);
}
int main()
{
    string s;
    while(cin>>s)
    {
        Zh(s);
    }
}

  

猜你喜欢

转载自www.cnblogs.com/masterchd/p/8982132.html
今日推荐