牛客网--进制转换

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

输入描述:

 

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

输出描述:

 

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

输入例子1:

0xA

输出例子1:

10

思路

为了方便处理,将字符串中的字符全部转成小写后再处理

#include<bits/stdc++.h>
 
using namespace std;
// 获取字符对应的数字
int getNum(char ch){
    // 数字
    if(isdigit(ch))
        return int(ch- '0');
    // 英文字符
    return int(ch- 'a'+ 10);
}
int main(){
    string str;
    while(cin>>str){
        // 为了方便处理,将字符全部转成小写
        transform(str.begin(), str.end(), str.begin(), ::tolower);
        str= str.substr(2);
        int len= str.length();
        int result= 0;
        for(int i= 0; i< len; ++i){
            result= result*16+ getNum(str[i]);
        }
        cout<<result<<endl;
    }
    return 0;
}

 

发布了208 篇原创文章 · 获赞 28 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/weixin_41879093/article/details/105366989