【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));