Base 40エンコーディングを使用して文字列を圧縮できることが示唆されているのを見てきました(JavaでRedisインスタンスFWIWに送信するため)。考慮; スマズ。
40 よりも base 32 または 64 エンコーディングを好む理由はありますか? 不利な点はありますか?このようなエンコードはロスレスになる可能性がありますか?
Base 40エンコーディングを使用して文字列を圧縮できることが示唆されているのを見てきました(JavaでRedisインスタンスFWIWに送信するため)。考慮; スマズ。
40 よりも base 32 または 64 エンコーディングを好む理由はありますか? 不利な点はありますか?このようなエンコードはロスレスになる可能性がありますか?
40 は、文字 (アプリケーションがほとんどの場合大文字を使用する傾向がない限り、おそらく小文字) と 36 の数字を提供し、句読点とシフトのためにさらに 4 つを提供します。残りの 1 つをエスケープして、次の 1 つまたは 2 つの文字が他の 39 にはないバイトを表すことで、ロスレスにすることができます。大文字の文字列を持つ傾向があります。
3 つの base-40 数字が 2 バイトにうまく収まるので、40 は便利な base です。40^3 (64000) は 2^16 (65536) より少し小さいです。
何を使用する必要があるかは、データの統計によって異なります。