私は、6ビット文字エンコーディング5 ビットのエンコーディングが役に立つのか、あるいは場合によっては改善になるのか疑問に思いました。
私はそれを実現する方法を見つけたと思います。テキストを 8 ビットから 5 ビットにエンコード/デコードする相対コードを記述するだけです。
答え1
テレタイプで使用されていた古い Baudot コードは 5 つのデータ ビットを使用していました。これにより、電信システムを介してテキストを送受信し、タイプライターに似たデバイスで印刷することができました。これは 1840 年代に初めて導入され、1970 年代にもまだ広く使用されていました。シリアル通信では、2 つの開始ビットと 1 つの終了ビットが追加されました。
5 ビット コードでは、32 通りの組み合わせしか提供されません。アルファベット文字と数字および記号をサポートするために、2 つのモードが使用されました。文字モードにはアルファベットが含まれ、数字モードには数字と記号が含まれます。スペース、キャリッジ リターン、ライン フィード、およびモード切り替えの文字は、両方に共通です。小文字はサポートされていません。
5 ビット コードが使用されたのは、機械装置に簡単に実装でき、低速の伝送システムを効率的に使用できるためです。現在ではその有用性は疑問視されていますが、非常に特殊な目的には役立つ可能性があります。ただし、利点は制限と慎重に比較検討する必要があります。
答え2
はい、5 ビット エンコーディングは場合によっては便利です。特に、制約のある環境では、古いゲーム ハードウェア (例: NES) やネットワーク経由のデータ転送を考えてみてください。
文字セットが小さい場合、文字列は 1 文字あたり 8 ビットではなく 1 文字あたり 5 ビットをパックするビットストリームでエンコードできます。これにより、データ サイズが削減されます。固定ビット長のエンコードを使用してデータを圧縮します。もちろん、「エンコード/デコード」が必要なため、「圧縮されたデータ」と「処理速度の向上」をトレードオフすることになります。
5 ビットを使用すると、データは 0 ~ 31 ($00 ~ $1F) の範囲の値を持つことができます。表現できるのは 32 項目のみです。ページング/モードを使用すると、サポートされる項目の数を拡張できます。たとえば、32 文字 + 32 文字 + 32 制御コマンドの 3 ページを考えてみましょう。
前述のように、これは固定ビット長のエンコーディングです。次のトピックは可変ビット長のエンコーディング、そしてハフマン エンコーディング (アイテムの頻度/発生分析を行ってエンコーディングを最適化するため) です。