私は現在 NTL を使用して大きな整数を処理しています。このライブラリの大きな整数は ZZ として宣言されます。ZZ 番号から 16 進数に変更したいと思います。ただし、調べたところ、NTL は ZZ から 16 進数への変換をサポートしていません。
私の質問は、どのように ZZ (または大きな 10 進数を表す文字列) から 16 進数の形式に変換できますか? 誰かが助けてくれれば、このライブラリの機能を使用して ZZ から 16 進に直接移動できるかどうかを好みます
Step1: 大きな数 xx は最初に文字列 s として取得されます
ステップ 2: 文字列 s の長さが l の場合、s=s[0]s[1]...s[l-1] とします。位置 0 から始まる s の各文字を読み取り、int digit = atoi(ts.c_str()); を使用して、この数字を整数変数の数字に変換するたびに 次に、再帰関係 value=10*value+digit を使用します。ここで、value は ZZ として宣言され、0 に初期化されます。すべての数字を反復処理した後、文字列を ZZ 値に渡します。
ステップ 3: 16 進数形式に変換するために、NTL を使用して ZZ 数の modulo16 を計算できます。したがって、value%2 から始めて (value-value%16)/16 を計算し、この方法で 16 進形式を取得します。