私は非常に長い整数を持っています。整数は、符号なし文字の配列で表されます。整数n(配列として表される)を基底nで整数に変換するアルゴリズム
例:ベース10と整数1234 [4,3,2,1]、[2,2,3,2](ベース8)のようにアレイ状に表され、[2,13 、4](基数16)
ここで、基数nの整数を基数mの別の整数に変換したいとします。答えを求める私の質問には、Wallar's algorithm、最初はhereから来ました。
from math import *
def baseExpansion(n,c,b):
j = 0
base10 = sum([pow(c,len(n)-k-1)*n[k] for k in range(0,len(n))])
while floor(base10/pow(b,j)) != 0: j = j+1
return [floor(base10/pow(b,j-p)) % b for p in range(1,j+1)]
最初は私の答えだと思っていましたが、残念ながらそれはありません。私が持っている問題は、アルゴリズムが合計を計算することです。私の場合、変数base10
は32ビットの符号なし整数型であるため、これは問題です。したがって、配列として表現された整数に10桁以上の数字がある場合、それ以上は変換できません。誰にでも解決策がありますか?