コメント: 7bits エンコーダ/デコーダ

車輪の再発明とおっしゃっているのを承知で書き込みます。バイト単位の通信の場合、簡単な方法として情報パケットの先頭に"STX"文字を置くというものがあります。で、情報自体の中に"STX"と同じワードが現れたら、"ESC"+"S"にするといった置き換えをします。この場合、オーバーヘッドは1/128になります。

投稿者 酔漢 : November 8, 2007 10:02 AM

あ、1/256 + パケットヘッダか。

投稿者 酔漢 : November 8, 2007 10:04 AM

>酔漢さん
コメントどうもです。
使用目的として、数バイト程度の少量のバイナリデータ(ASCII文字以外もという意味で)が一つの意味単位になりそうであったので、おそらく上記の方法とお教えいただいた方法で伝送量はそれほど変わらないかと思います。
また、ASCII文字だけの通信でしたら"ESC"によるエスケープが有効ですが、バイナリですと"ESC"+"S"を転送したいという事態が当然ながら発生するので、"ESC"を表現するのに"ESC"+"ESC"にしてみたりと、今回の目的では更におまけをつける必要がありますね。

投稿者 fenrir : November 8, 2007 01:08 PM
コメントする









名前、アドレスを登録しますか?
(次回以降コメント入力が楽になります)
  • 匿名でのコメントは受け付けておりません。
  • 名前(ハンドル名可)とメールアドレスは必ず入力してください。
  • メールアドレスを表示されたくないときはURLも必ず記入してください。
  • コメント欄でHTMLタグは使用できません。
  • コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
  • コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。