任意进制转换成十进制c++

介绍

原理就不多讲了,如果有不懂得可以看这里
注意当s[i]是字母的时候就行了。

源码

#include <bits/stdc++.h>

using namespace std;

int main()
{
    // 任意进制转换为十进制
    string s;
    cin >> s;

    int n, res = 0;
    cin >> n;

    int cnt = 0;
    for (int i = s.size() - 1; i >= 0; i -- )
    {
        if (s[i] >= 'A' and s[i] <= 'Z')
        {
            res += (s[i] - 'A' + 10) * pow(n, cnt ++);
        }
        else
        {
            res += (s[i] - '0') * pow(n, cnt ++ );
        }
    }

    cout << res << endl;

    return 0;
}
THE END