* KH-dha8
-(by [[K]], 2015.02.06)
** これはなに?
-gh4やhh4の仲間で、シンプル化に重きを置いた(つまり効率はあまりよくない)バージョンです。
-名前の由来:
--倍々方式が基本なので、doubleのd。
--エンコード長が先頭付近で分かるタイプなのでheaderのh。
--今後亜種を作るかもしれないので、とりあえずa型。
--8ビット単位のエンコード方式なので、8。
-そもそもの動機:
--最大256ビットの整数値をエンコードする必要があって、でも毎回32バイトも書いていたら長くなってしょうがないので、可変長にして短くしたかった。
--hh4でもよかったんだけど、8bit単位に特化してもっとシンプルにできないかなーと思っていた。
** フォーマット
|0xxxxxxx|1バイト形式|0~0x7f(符号なしの場合)|
|10xxxxxx_xxxxxxxx|2バイト形式|0~0x3fff(符号なしの場合)|
|110xxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx|4バイト形式|0~0x1fff_ffff(符号なしの場合)|
|1110xxxx_..._xxxxxxxx|8バイト形式|0~0x0fff_ffff_ffff_ffff(符号なしの場合)|
|11110xxx|未定義||
|111110xx|未定義||
|1111110x|未定義||
|11111110|拡張形式|エンコード長(ヘッダを含まずデータ部分のみの長さ)が後続|
|11111111|1バイト形式|パディング用|

-最短フォーマット:
--0x7fまでなら1バイト形式(0xxxxxxx)
--0x3fffまでなら2バイト形式(10xxxxxx_xxxxxxxx)
--0x1fff_ffffまでなら4バイト形式(110xxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx)
--0xffff_ffffまでなら6バイト形式(11111110_00000100_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx)

** ついでに KH-dhb8
-KH-dha8に以下の仕様変更をしたもの:
--1110xxxx : 拡張形式のコンパクト版。xxxx部分でエンコードバイト数-2を表すので、2~17が表現できる。

-最短フォーマット:
--0x7fまでなら1バイト形式(0xxxxxxx)
--0x3fffまでなら2バイト形式(10xxxxxx_xxxxxxxx)
--0xffffまでなら3バイト形式(11100000_xxxxxxxx_xxxxxxxxx)
--0x1fff_ffffまでなら4バイト形式(110xxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx)
--0xffff_ffffまでなら5バイト形式(11100010_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx)
--0x00ff_ffff_ffffまでなら6バイト形式(11100011_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx)
--0xffff_ffff_ffffまでなら7バイト形式(11100100_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx)
--0x00ff_ffff_ffff_ffffまでなら8バイト形式(11100101_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx)

** ついでに KH-dhc8
-KH-dha8に以下の仕様変更をしたもの:
--110xxxxx_... を3バイト形式のヘッダとする(4バイト形式ではなく)。
--1110xxxx : 拡張形式のコンパクト版。xxxx部分でエンコードバイト数-3を表すので、3~18が表現できる。
--1110xxxx : 拡張形式のコンパクト版。xxxx部分でエンコードバイト数-4を表すので、4~19が表現できる。
--もはや倍々方式ではないのでdの名はふさわしくないが、名残でdh属のままとする。

-最短フォーマット:
--0x7fまでなら1バイト形式(0xxxxxxx)
--0x3fffまでなら2バイト形式(10xxxxxx_xxxxxxxx)
--0x001f_ffffまでなら3バイト形式(110xxxxx_xxxxxxxx_xxxxxxxxx)
--0x00ff_ffffまでなら4バイト形式(11100000_xxxxxxxx_xxxxxxxx_xxxxxxxx)
--0xffff_ffffまでなら5バイト形式(11100001_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx)
--0x00ff_ffff_ffffまでなら6バイト形式(11100010_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx)
--0xffff_ffff_ffffまでなら7バイト形式(11100011_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx)
--0x00ff_ffff_ffff_ffffまでなら8バイト形式(11100100_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx)



* こめんと欄
#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS