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だから。32だとエンディアン関係ない。

リロード   新規 編集 差分 添付   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
Last-modified: 2010-06-27 (日) 15:20:00 (3125d)