题解 | #进制转换#

进制转换

https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6

#include <iostream>
using namespace std;

int main() {
    string str;
    int sum=0,num;
    cin >> str;
    num = str.size();
    while(num > 2){//从最后一个字符想前计算和判断,即:num-1 > 1
        int sum1=1;
        int num1 = str.size()-num;
        while(num1)//循环计算16相乘的结果
        {
            sum1 *= 16;
            num1--;
        }
        if(isdigit(str[num-1])){//判断该位置是否为数字
            sum += (int(str[num-1])-48)*sum1;//利用ASCII来计算结果
        }else{
            sum += (int(str[num-1])-55)*sum1;
        }
        sum1 = 1;
        num--;
    }
    
    cout << sum;//输出

    return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务