* khabaネタ
 -(by [[K]], 2010.06.27)
 *** (7)
 -(2010.06.27b)
 -データ・フォーマット混載型(G02)
 --混載型とはいっても、中に入れない?
 --タイプフィールド
 --シンプル(1):あるタイプがファイル終端まで繰り返す。
 --0はNOP・・・いやNOPはいらない。自由長だから。
 --タイプ33は、LFでの改行を義務付ける。TABは4文字分。BSなどは含んでもいいが、処理できない可能性はある。制御コードとして処理されても文句を言ってはいけない。それはオプションで制御される?・・・デフォルトは、一般文字として扱う。00も抜かない。
 -となると、標準テキストはこんな感じかな?(47 40 はjunkヘッダ。最終的には47 02を予定)
 --47 40 81 21
 -一般ビットストリーム
 --47 40 14
 -最初が74になっている場合、エンディアン誤認の可能性。
 --bigエンディアンで 47 02 14 だと、リトルではどうなるの? 4702 は 02 47 と書き込まれる。これは、bigエンディアンのファイルを、16bit単位で読んで、リトルに書き出してしまった場合。
 --リトルエンディアンでは、47を分割して、74とかかせるのはどうだろう?だって下位から埋めるべきだろう?'t'
 --74で始まったら、リトルエンディアンgh4を採用していることが分かる。47で始まったら、bigエンディアンgh4。
 --リトルエンディアンgh4では、制御ビットが下位に表れる。だってそっちが「先」だから。
 --とにかく4bitを読め。そしてさらに4bitを読め。この順序では必ず 4 7 が出るはず。しかし7はよくない数字だ。変更しよう。じゃあ、43で。43なら逆にしても34だし。41-14だとあまりよくないから。いや、下位1bitも0のほうがいい。リトル版gh4を考えたら。
 -ということで、エンディアンを守って4bitずつ読んで、 4 2 0 2 が出たら認識成功。
 --2 4 2 0 ならbigをリトルで読んだ病気になっている可能性が高い。
 --4 2 0 2 でも中がおかしくなっている可能性は?2bitや1bitもテストするべきなのか?
 --それはできなくてもいいと思う。
 --gh4ルーチンで読んでもいいけど、できればそれはしないほうがいい。
 -ちがう、とにかく8bitを読め、だ。42が見えたらエンディアン一致。24が見えたらエンディアン不一致。出力では、4bitずつ、4 2 0 2 を送るのだから。
 -42_02はやめよう。2の部分はgh4で。いややっぱり有効。これは02という一つの数字ではなくて、0と2なんだ。そうなんだ。
 -33のテキストファイルなどのエンディアンがどっちでもいいケースは、42を使うほうが推奨される。・・・いや違った。エンディアン関係ある。gh8だから。
 -33のテキストファイルなどのエンディアンがどっちでもいいケースは、42を使うほうが推奨される。・・・いや違った。エンディアン関係ある。gh8だから。32だとエンディアン関係ない。

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