
エラーチェックの種類を主な利用先
|
チェック方式名 |
基本原理と方法 |
利用例 |
|
ビットの1の数の合計を利用 調歩式通信 |
テープのエラーチェック、パソコン通信などの調歩式通信 パリティ付きメモり |
|
|
情報ビットとチェックビットを組み合わせてエラー発見と訂正ができる方式 |
主記憶のチェックと修復。 ECC付きメモり |
|
|
特定の数で割ってその余りが0になるようしてチェック |
HDLC、X.25 |
|
|
計算で求めた1桁の数字を付ける |
JANコード |
|
|
サイトチェック |
原票とダンプを目でチェック |
伝票入力 |
|
ニューメリックチェック |
数字しか入らないようにする。 |
入力フィールドのチェックなど |
|
照合テスト |
|
|
|
バランスチェック |
|
|
|
チェックサム |
合計値を計算しておき、データの中にそれを含み、チェックする |
|
|
ハッシュ合計 |
特定項目の合計を検査データとする。 |
|
|
レンジチェック |
データが範囲にないっているかどうか |
|
扱うバイトなど、それぞれのバイトに1ビット追加して、ビットの数を奇数もしくは偶数に合わせるチェック方式です。エラーチェックは、受け取ったバイトのビットの数が偶数か奇数かでチェックをします。
例
"sky"をASCIIコード、偶数パリティで転送するとき、
ASCII パリティビット
S: 00110101 + 0
k:
10110110 + 1
y: 10010111 + 1
なので、
001101010 101101101 100101111 と転送します。それが、転送元で
001101010 110001101 100101111 となったとき、2つ目の文字がビットが奇数なので間違いであることが発見できます。
このチェック方式は、簡単に実現できることがメリットです。しかし、パリティをつけるグループ(例では文字)内で2カ所の間違いがあったときは、発見不能になります。エラー修復もできません。
この方法を拡張したものに、水平パリティ、垂直パリティ。ハミングコードがあります。
数字を読みとるとき、もしくは、入力した段階のチェックに使います。それぞれの数字の桁に重みをつけて、合計を結果を後ろに付けます。
例
497127553008 という数字にチェックディジットを付加します。
4 9 7 1 2 7 5 5 3 0 0 8 9(チェックディジット)
× ????
(学校で資料を調べて追加する予定)
最初の49は日本を表す。45も日本。
次の5桁は、メーカーを表す
次の5桁は、メーカーで付けた商品コード
最後の1桁は、チェックディジット
本来の意味のある情報ビットと検査用のチェックビット(冗長ビット)を組み合わせて、検査と訂正ができる方式です。ハミング氏が考えたのでこの名前が付いています。64ビットの情報ビットに対して、8ビットの冗長ビットを使用しているのが、サーバー機などで使用されているECC付きメモりです。ペンティアムのチップセットの標準機能となってます。
パリティチェックを拡張したやり方です。
ハミングコードは、1ビットの誤り訂正、2ビットの間違いを発見できると言う「単一誤り訂正二重誤り検出コード」(SEC/DECコード single-error-correcting and double-error-detecting code)として知られています。一種午前平成9年問15に具体的な方法が書いてあります。
関連問題 一種午前平成9年問15
データをブロック単位(可変長)で特定の数字で割って、それが割り切れるように冗長ビット(巡回符号)を付加し、検査のときには、特定の数字で割ってチェックする検査方式です。
具体的には、X.25で採用されている割る数字は、1 0001 0000 0010 0001(=X16+X12+X5+1 生成多項式)です。HDLCでも採用されています。
簡単なハードウェアで実現できるのが特徴です。通信機器の組み込まれて利用されたりしています。