次のような長い整数があります: 5291658276538691055
この数字をプログラムで 4 ~ 6 の大文字のみに変換するにはどうすればよいでしょうか。これは、数字に戻すために逆にすることもできる一意の組み合わせです。
たとえば、OBJ-C を使用します。
次のような長い整数があります: 5291658276538691055
この数字をプログラムで 4 ~ 6 の大文字のみに変換するにはどうすればよいでしょうか。これは、数字に戻すために逆にすることもできる一意の組み合わせです。
たとえば、OBJ-C を使用します。
26 個の大文字があります。
それらの 6 は 26 ^ 6 の数字 (308915776) を表すことができます。
いいえ。より大きな範囲の数値をより小さな範囲にマップしようとしています。元に戻すことはできません。
また、log 5291658276538691055 / log 26
は 14 未満なので、14 文字が適している場合は、数値を 26 ベースに変換し、数字を文字にマップします。
もう 1 つ、数値の範囲が十分に小さい場合は、数値を操作して (最小値を減算するなど)、エンコードすることで、桁数を減らすことができます。
数値を Base 26 に変換する必要があります (16 進数 - きびきびした名前!)
Hexavigesimal に関するウィキペディアの記事では、Java のコード例を示しています。これは非常に簡単に適応できるはずです。
注意:変換アルゴリズムのみを使用して、言及した4〜6個の大文字までの長い数字を取得することはできません(Base 26の例はBCKSATKEEBRYBXJです)。短い変換が必要な場合は、次の 2 つのオプションしかありません。