「ゲームプログラミング/画像ファイルの作成プログラム」の版間の差分
削除された内容 追加された内容
→拡張ビットの一覧: class="wikitable" |+ 距離符号の拡張ビットの対応表 (全部) |
|||
1,213 行
:※ 0x1B と 0x1C とで拡張ビット数が違うのは誤差ではなく仕様。
:一致長、距離
の順番で表す。
たとえば一致長が4、距離が5なら、
まず表現「4」は0x102で拡張ビット数0なので、
まず、0x102 が先にくることが決まり、拡張ビットはその直後には無い事が決まり、直後はすぐに距離が来ることが決まる。
つまり、
:0x102
となる。
そして、距離の表現「5」に対応するのは、
0x04 が5~6で拡張ビット数1だから、5+0により0が拡張ビットの値になるので、
:0x04 0
が来ることが決まる。
そして、
一致長さ、距離
の順序なのだから、
:0x102 0x04 0
が来る。
ABCDEABCDK の場合、まずアスキーコードに変換して、
:0x41 0x42 0x43 0x44 0x45 0x41 0x42 0x43 0x44 0x4B
である。
距離や一致長さの単位はバイト単位(十六進で2ケタ)で測定するので、
:0x41 0x42 0x43 0x44 0x45(一致長さ4,距離5)0x4B
となる。
そして、いくつか前の段落で説明したように、
:0x41 0x42 0x43 0x44 0x45 0x102 0x04 0 0x4B
となる。
最後に終端記号 0x100 がつくので、
:0x41 0x42 0x43 0x44 0x45 0x102 0x04 0 0x4B 0x100
となる。これで圧縮がひとまず完了。
== 拡張ビットの一覧 ==
|