通常のbase10番号として、おそらく大きな数値(UInt.MaxValue:18446744073709551615)を取得します。この番号は最終的にファイル名になります:12345678945768.txt
Windowsのファイル名は数字だけに限定されていないので、これをより短い文字列に「圧縮」したいと思いますが、文字列を数値にマップして戻すことができることを確認する必要があります。
小さい数値の場合:0001365555、hexedは他の何よりもはるかに短いです。私がこれまでに見つけたものはすべて、Base64が最短になると述べていますが、そうではありません。
これまで私はこれを試しました:
//18446744073709551615 - 20
UInt64 i = UInt64.MaxValue; // 0001365555
//"//////////8=" - 12
string encoded = Convert.ToBase64String(BitConverter.GetBytes(i));
//"FFFFFFFFFFFFFFFF" - 16
string hexed = i.ToString("X");
//"MTg0NDY3NDQwNzM3MDk1NTE2MTU=" - 28
string utf = Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(i.ToString()));
整数を「圧縮」して16進数と同様に変換するが、00-FFだけでなく00-zzを使用するより良い方法はありますか?
前もって感謝します!