【华为机试】5- 进制转换

1- Description

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

输入描述
输入一个十六进制的数值字符串。
输出描述
输出该数值的十进制字符串。

示例1
输入:
0xA
输出:
10

2- Solution

#include <iostream>
#include <string>
#include <math.h>
using namespace std;
int main(){
    string strinput;
    while(cin>>strinput){
        int decoutput = 0;
        for(int i = strinput.length() - 1; i >= 2; --i){//从后往前进位
            switch(strinput[i]){
                case 'A':
                case 'B':
                case 'C':
                case 'D':
                case 'E':
                case 'F':decoutput += (strinput[i] - 'A' + 10) * pow(16 ,strinput.length() - 1 - i);
                    break;
                default:
                    decoutput += (strinput[i] - '0') * pow(16 ,strinput.length() - 1 - i);
                    break;
            }
        }
        cout << decoutput << endl;
    }
    return 0;
}
#include <iostream>
using namespace std;
int main(){
    int a;   
    while(cin>>hex>>a){
        cout<<a<<endl;   
    }
}

欢迎关注公众号:CodeLab

猜你喜欢

转载自blog.csdn.net/pyuxing/article/details/88847810