华为oj初级 进制转换

    xiaoxiao2021-03-25  35

    描述 写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。 知识点 字符串,循环,函数,指针 运行时间限制 10M 内存限制 128 输入 输入一个十六进制的数值字符串。 输出 输出该数值的十进制字符串。 样例输入 0xA 样例输出 10

    #include<iostream> #include<vector> #include<string> #include<algorithm> #include<cmath> using namespace std; int main(){ string s; cin >> s; int sum = 0, base = 1; int len = s.size(); for (int i = len - 1; i>1; i--){ if (islower(s[i])) { sum += (s[i] - 87)*base; base = base * 16; } else if (isupper(s[i])){ sum += (s[i] - 55)*base; base = base * 16; } else if (isdigit(s[i])){ sum += (s[i] - '0')*base; base = base * 16; } } cout << sum; return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-50395.html

    最新回复(0)