c++ - GMP整数をベースN整数に変換する

原文 c++ c math biginteger bignum

GMPは、ベース62までのmpz_tを出力できますが、任意のベースNに数値を表現したいので、まず整数の配列を生成する必要があります(自分をベース2 ^ 64に制限するとします)。したがって、unsigned longの配列がそれを行う可能性があります。

たとえば、整数を取り、それをベース792に変換する場合、それを直接文字列に入れることはできません。最初に整数の配列を作成する必要があります。

GMPにこれについて既存のコードはありますか?私が学ぶ必要があるある種の数学のように、それをコーディングし始める必要がありますか?

追伸
「ベース」という用語を使用しても「線形ベクトル空間」を使用することはまったく関係がないので、変換は無意味になりますが、Unicodeには多くの記号(Unicode 3.2の場合は95,221)があるため、単一のシンボルでそれらを表す方法。
答え
内部的には、GMPの関数は直接または間接的にmpnレイヤーを呼び出します。

http://gmplib.org/manual/Low_002dlevel-Functions.html#Low_002dlevel-Functions

mpn_get_strは256までのベースのみをサポートします。そのため、独自のベース変換を作成しない限り、これ以上高くなることはないと思います(これは簡単なことではありません)。
関連記事

c++ - タイルエンジンのパフォーマンスの問題

c++ - GTKでキーボードとマウスの入力を取得するにはどうすればよいですか?

c++ - 元の型が署名されているか、署名されていないかわからない場合、boost::anyから整数を取得する方法はありますか

c++ - この「if」ステートメントがループするのはなぜですか?

c++ - これは、浮動小数点値を使用して入力検証を行う正​​しい方法ですか?

c++ - コンパイル後のC++コンストラクタの本当のシグネチャは何ですか

c++ - Valgrind-初期化されていない値とバイト?

c++ - C++ constオーバーロードとコード共有

c++ - OpenGL 2.1でのglDrawRangeElementsの使用

c++ - POSIX読み取りの一時停止をマイクロ秒の範囲で認識する