2016-08-08 9 views
0

ベース43(ASCII 32-126、アルファベットを除く)からベース95(ASCII 32-126)に素早く変更する方法を探しています。これらの文字列は通常3〜20文字の長さです - 誰にもこれの疑似コードはありますか?文字列エンコーディング方法:Base 43 - > Base 95

+0

誰か、お答えください。 – J843136028

+0

あなたは、どのプログラミング言語について話しているのでしょうか? – OldMcDonald

+0

さて、私は実際には「おもちゃの言葉」であるスクラッチを使っています。その算術はあまり良くありません。 (ここでスクラッチをチェックしてください:https://scratch.mit.edu) – J843136028

答えて

0

私は、最初にbase-43文字列を 'big integer'にデコードしてからbase-95文字列としてエンコードする以外の方法はないと思います。

20文字の文字列の場合、この中間整数は約log(43)/ log(2)* 20 = 109ビットです。

大きな整数演算にアクセスできる場合、この変換は簡単に実装できます。 128ビット(ベース43の23文字)を下回ることができれば、計算は非常に高速になる可能性があります。

+0

問題は、私は大きな整数の数学にアクセスできないです。私は整数に変換することなくそれを行う方法を探していました。おそらく時間がかかるからです。とにかくありがとう。 – J843136028

+0

スクラッチのためのBig Integerモジュールがありますが、それはかなり遅いようです:https://scratch.mit.edu/projects/93580772/この変換の問題は、ベース43と95が大きく異なるためですBig Integerの計算を避けるために使うことができるショートカットがあると思います(たとえば、ベース32からベース64まで)。 –

関連する問題