トップページ

本棚


両手で1000まで数えられますか?:2進法の話
数値 - 危険物取り扱い注意
100 × 200 =32?:変数のオーバーフローの話
パリティビット
小数の扱いについて
ぽいんた
ぽいんた2
ぽいんた3
ジ・オリジン
ジ・オリジン:補足
かっこつける話
かっこつける話2
文字列のこと
タイミングの話
拡張性の話
取り込む話
staticな話

コンパイルの話1
コンパイルの話2:止まらぬビルド
コンパイルの話3:マシン語に落ちるということ1:メモリの話
コンパイルの話4:マシン語に落ちるということ2:最適化
コンパイルの話5:マシン語に落ちるということ3:変数とスタック
コンパイルの話6:コンパイラはそもそも何をやってくれるのか??
リンクの話
プリプロセッサの話

OS、というもの

オブジェクト指向1
オブジェクト指向:2
オブジェクト指向:3

オブジェクト指向:番外 C言語のソースファイルの話
オブジェクト指向:番外 C言語での「再利用性」と「カプセル化」データ構造とアルゴリズム


抽象的な話

寝込んで布団の中で考えたこと
こんなの、常識??
お仕事プログラミング
ソフトでハードなプログラム
プログラムするということ
お勉強
プログラムを学ぶということの補足
C言語:「学問」と「実務」
統合開発環境
C言語ってポータブルですか?
C言語ってポータブルですか?:2
あなたは、どう読みますか?
ああ勘違い
試してガッテン
低級品
質問をするということ
ポカ
「何もしない」 != 「無駄」
エディタの話
もっと手を抜こう

いまどきの、アセンブラ

VisualStudio2005
VisualStudio2005:2

戦争の防ぎ方、に対する私の考え
身近な差別
改革
地球に優しいなんて大嘘
統計で嘘をつく方法

言葉について
言葉について:2

神が死んだということ
善悪の彼岸から、力への意思を目覚めさせるということ

本を読むということ
本を読むということ:2

絵を描く話
地図
地球儀

オカルトのお話
がんだむさん
RPGソフトウェア
記紀神話の不思議



メニュー

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

チェックサムを書いたので、似たようなロジックとしてパリティビットの話も。

bitの話も、もうしてあるので、準備も整ったことだし。


チェックサムは、1byteに入りきらない値が切り捨てられることを利用してデータの整合性を(ある程度)保障するというものでした。

これと似たようなテクニックとして、ビットを使うテクニックがあります。

1byteは8bitですが、通信などにおいては送信側と受信側で正常にエンコード/デコードできれば、問題はありませんね。

そこで、例えば送信する時には7bitずつ送って、最後の1bitをパリティビットとして使うことでデータの整合性を保障するということができます。

どういう風にするかというと、例えば0x5a5a5a5aという4byteのデータを通信で送受信するとすると、bitで表すと
【0101 1010 0101 1010 0101 1010 0101 1010】 
となるわけです。

これを7bitごとに送るとすると、【0101 101】ですね。

このbitを 0 + 1 + 0 + 1 + 1 + 0 + 1 とすると、2進数なので【101】となります。この一桁目の【1】を先ほどの7bitの最後に付加して送信用の1byteとするのです。

つまり、最初に送受信されるデータは【01011011】となります。


あとは、この手順を元データの先頭から順に繰り返すだけです。


受信側は受信したデータの前7bitから同じ計算をして、それが8bitめのbitと一致しているかをチェックします。

これが一致していたら一応OK、一致していなかったらNGというわけです。


これはチェックサムと比べると0か1かのbitをチェックに使っているので、ノイズがのったりして正しいデータが送受信できていない場合でも1/2の確立でOKと判断されてしまいます。

しかしながら、チェックサムが1byte以上のデータでないと使えないのに比べ、パリティビットはbit単位でデータの整合性をチェックすることができます(ただし、あまり細かすぎる単位でパリティビットを持たせても、逆にパリティビット自体にノイズがのりやすくなりますし、データ量が増えてしまうため意味がありませんが)。

チェックサムにしろ、パリティビットにしろ、それを使うことでデータの完全な保障はできませんが、併用することでかなり信頼性の高いデータの送受信が行えることになります。


プログラムにおいては、例えばC言語の文法などよりもこういったアルゴリズムを知っているか、使えるかということのほうが重要なことが多いかもしれません。




| 新しいページ | 編集 | 差分 | 編集履歴 | ページ名変更 | アップロード | 検索 | ページ一覧 | タグ | RSS | ご利用ガイド | 管理者に問合せ |
@wiki - 無料レンタルウィキサービス | プライバシーポリシー