まず、私は自分でこれを行っているので、「GMP / xint / bignumを使用する」ことを提案しないでください(該当する場合でも)。
大きな整数(たとえば、9000桁以上)を232表現のint32配列に変換する方法を探しています。数字は基数10の文字列として始まります。
たとえば、string a = "4294967300"
ちょうど上にある(基数10の)INT_MAX
新しい基数2 32配列に変換したい場合は、になりますint32_t b[] = {1,5}
。の場合int32_t b[] = {3,2485738}
、基数10の数値はになります3 * 2^32 + 2485738
。明らかに、私が使用する数値はint64の範囲を超えているため、文字列を正確に整数に変換して成功への道を変えることはできません。
10進数で減算する関数があります。今はsubtraction(char* number, "2^32")
、負の数になるまでに何回カウントするかを考えていますが、数値が大きくなると時間がかかる可能性があります。
誰かが別の変換方法を提案できますか?ありがとう。
編集
タグが表示されなかった場合は申し訳ありませんが、私はC++で作業しています