メモ帳がわり

個人的なメモを残します。主に競プロ

【C++】N進数→10進数, 10進数→N進数

N進数→10進数の変換

Nの部分を変換して使いましょう。
numは任意のN進数です。
powはdouble型などを返すので、誤差に注意。(誤差が気になる場合は自作累乗関数を作ろう。)

string str = to_string(num);
long long n = 0;
long long sz = str.size();
for (int j = 0; j < sz; j++) {
    n += pow(N, sz - j - 1) * (str[j] - '0');
}

10進数→N進数の変換

nは任意の10進数です。 文字列のN進数に変換しています。

string str = "";
while (n) {
    str.push_back('0' + n%N);
    n /= N;
}
reverse(all(str));