0

重複の可能性:
ハフマンコードを使用して単語をエンコードする方法についてのヘルプが必要

次のハフマン符号化記号があるとします。

A-0 B-10C-110D-111そしてシーケンスをエンコードしたい

ABAACDADBBの場合、次のようなバイナリコードを取得します:01000110 11101111 010

(01000110)= 0x46(11101111)= 0xEF

010 = ???? このコードに010がない場合は、これらのバイトをファイルに保存できます。この010をどのように処理すればよいですか?00000010として保存しますか?それは機能しません。

4

2 に答える 2

2

エンコードされたデータにはヘッダーが必要です(この目的には1バイトで十分ですが、実際に必要なものによってはさらに必要になる場合があります)。最後のデータバイトにあるパディングビットの数を格納できます。したがって、010ヘッダーバイトを使用した例で5は、最後のバイトの最後に無視する必要のある5ビットがあるため、が含まれます。

実際に役立つビットに格納されている値を見つけることは、コードを2バイトに分割する可能性のある重複するコードを持つ可能性があるため、ビットごとに処理する必要がありますN。バイトにオーバーラップしますN+1

于 2012-11-06T03:30:39.637 に答える
0

終了したことを示す終了バイトを含めることができます。その後、最後のデータバイトに格納されたアイテムの数を示す別のバイトを含めることができます。次に、実際に重要なビット数を把握して、最後のバイトから残りの文字を並べ替えることができます。

于 2012-11-06T03:23:03.303 に答える