チェックデジットとは
4
付録
チェックデジットは読み誤りがないかをチェックするために、算出された数値です。
以下にそのチェックの流れと計算方法を解説します。
・バーコードを読み取ります。
読み取り
1236
データは ”123 ”
チェックデジットは
” のバーコード
6” チェックデジット算出
・データ部より、チェックデジットを
1236 算出します。
6
一致
・算出されたチェックデジットと読み取った
正常読み取り 読み取りデータと比較 バーコードに付加されたチェックデジットを
1236 比較します。
比較
不一致
6
リードエラー
・一致しなければ、リードエラーとなります。
チェックデジットの計算法
JAN、ITFに適用されるモジュラス10/3ウェイトと呼ばれるチェックデジットの計算方法を
JAN(497123456789)を例に説明します。
①コードの数字に右端から順に番号を付けます。
②奇数番号の数字には3を、偶数番号の数字には1をそれぞれ掛けます。
③その数の総和を求め、下1桁の数を10から引いて出た数がチェックデジットです。
12 11 10 9 8 7 6 5 4 3 2 1
4 9 7 1 2 3 4 5 6 7 8 9
× × × × × × × × × × × ×
1 3 1 3 1 3 1 3 1 3 1 3
=
=
=
=
=
=
=
=
=
=
=
=
+ + + + + + + + + + +
4 27 7 3 2 9 4 15 6 21 8 27
=133
10−3(133の下1桁) =7
こうして、チェックデジット7が計算できます。
11
チェックデジットとは
4
付録
チェックデジットは読み誤りがないかをチェックするために、算出された数値です。
以下にそのチェックの流れと計算方法を解説します。
・バーコードを読み取ります。
読み取り
1236
データは ”123 ”
チェックデジットは
” のバーコード
6” チェックデジット算出
・データ部より、チェックデジットを
1236 算出します。
6
一致
・算出されたチェックデジットと読み取った
正常読み取り 読み取りデータと比較 バーコードに付加されたチェックデジットを
1236 比較します。
比較
不一致
6
リードエラー
・一致しなければ、リードエラーとなります。
チェックデジットの計算法
JAN、ITFに適用されるモジュラス10/3ウェイトと呼ばれるチェックデジットの計算方法を
JAN(497123456789)を例に説明します。
①コードの数字に右端から順に番号を付けます。
②奇数番号の数字には3を、偶数番号の数字には1をそれぞれ掛けます。
③その数の総和を求め、下1桁の数を10から引いて出た数がチェックデジットです。
12 11 10 9 8 7 6 5 4 3 2 1
4 9 7 1 2 3 4 5 6 7 8 9
× × × × × × × × × × × ×
1 3 1 3 1 3 1 3 1 3 1 3
=
=
=
=
=
=
=
=
=
=
=
=
+ + + + + + + + + + +
4 27 7 3 2 9 4 15 6 21 8 27
=133
10−3(133の下1桁) =7
こうして、チェックデジット7が計算できます。
12
Q 27 チェックデジットはどういう仕組みでチェックされるのですか?
チェックデジットは読み誤りがないかをチェックするために、算出された数値です。
以下のように読み取りデータと付加されたチェックデジットを比較することで、読み
取りが正しいかをチェックします。
・バーコードを読み取ります
データは” 23”
1
チェックデジットは
・データ部より、チェックデジットを
” のバーコード
6”
算出します。
・算出されたチェックデジットと
読み取ったバーコードに付加された
チェックデジットを比較します。
・一致しなければ、リードエラーと
なります。
Point チェックデジットの計算法
JAN、
ITFに適用されるモジュラス10/3ウェイトと呼ばれるチェックデジットの計算方法を
例に説明します。
① コードの数字に右端から順に番号を付けます。
② 奇数番号の数字には3を、偶数番号の数字には1をそれぞれ掛けます。
③ その数の総和を求め、下1桁の数を10から引いて出た数がチェックデジットです。
こうして、チェックデジット7が計算できます。
9
第1章バーコードのしくみ
1- 4 チェックデジットとは
チェ ク ッ は読み誤り
ッ デジ ト がないかをチェ クするために、
ッ 算出された数値です。
以下にそのチェ クッ の流れと計算方法を解説します。
第
1
章
読み取り
・バーコードを読み取ります
1236
データは ”123 ”
チェックデジットは
・データ部より、チェックデジットを
” のバーコー
6” ド チェックデジット算出 算出します。
1236
6
・算出されたチェックデジットと読
読み取りデータと比較
一致 み取ったバーコードに付加された
正常読み取り
チェックデジットを比較します。
1236
・ 一致しなければ、リードエラーと
比較 なります。
リードエラー
6
不一致
ポイント
チェックデジットの計算法
JAN、ITFに適用されるモジュラス10/3ウェイトと呼ばれるチェックデジットの計算方法を
例に説明します。
コードの数字に右端から順に番号を付けます。
1
2 奇数番号の数字には3を、偶数番号の数字には1をそれぞれ掛けます。
3 その数の総和を求め、下1桁の数を10から引いて出た数がチェックデジットです。
1
11 10 9 8 7 6 5 4 3 2
12
9
9 7 1 2 3 4 5 6 7 8
4
×
× × × × × × × × × ×
×
3
3 1 3 1 3 1 3 1 3 1
1
=
=
=
=
=
=
=
=
=
=
=
=
4 + 27 + 7 + 3 + 2 + 9 + 4 + 15 + 6 + 21 + 8 + 27
= 133
10−3(133の下1桁) =7
こうして、チェックデジット7が計算できます。
6
Q 58 チェックデジットの計算方法(モジュラス16)
モジュラス16は NW-7 において使用されるチェックデジットです。
■ 条件
チェックデジットは、バーコードデータの最後の文字の後(ストップキャラクタのすぐ
前)に置かれます。
■ 計算方法
①スタート/ストップキャラクタを含めて、全てのデータを下表に従い数値化します。
②その数値の合計を求めます。
③その合計を16で割り、余りを求めます。
④余りが0の場合は、チェックデジットは0になります。余りが0以外の場合は、16
からその余りを引きます。その余りの数値を下表に従い再度キャラクタに戻した文
字がチェックデジットになります。
キャラクタ 数値 キャラクタ 数値 キャラクタ 数値 キャラクタ 数値
0 0 5 5 -- 10 + 15
1 1 6 6 $ 11 A 16
2 2 7 7 : 12 B 17
3 3 8 8 / 13 C 18
4 4 9 9 . 14 D 19
(例) 1 1
A 9+ 243□Bの場合
B
4 3
1 2
A 1 9 +
データ
↓ ↓ ↓
↓ ↓
↓ ↓ ↓ ↓
16 + + + 15 + + + + 3 + 17 = 68
1 2 4
1 9
数値化
68 ÷16 = 4 余り 4
16 ー 4 =12
12 → : … チェックデジット
よって、 1 1
A 9+ 243 Bとなります。
:
9
Q 55 バーコードデータの信頼性をあげる方法はあるの?
基 本的にバーコード自体は、そのキャラクタ構成に一定のルールがあり、そのルールによっ
て誤って読み取られる確率は非常に低いのですが、 さらに誤った読み取りを防止するために
チェックデジットを付加することもできます。
■ チェックデジットを使用する目的
たとえばバーコードの印字に欠け(ボイド)や汚れ(スポット)が発生した場合、バーコー
ドのルールを正しくクリアしてしまい、誤読につながってしまうケースがあります。
ここを読み取ると“0”になる
ここを読み取ると“F”になる
スポット ボイド
このような場合は、データにチェックデジットを付加することで、誤ったデータをバー
コードリーダから送信させないようにすることができます。
EX 正しいバーコードデータ:KEY001(CODE39) のとき、チェックデジットを
計算すると、下記のように“Q”を付加してバーコードが印字されます。
バーコードリーダは
“KEYF01Q”と
バーコードデータを読み取ります。
チェックデジット
4 桁目の“0”にボイドとスポットが発生し“F”と読み取れた場合、KEYF01のチェック
デジットは“+”となりますので、正しいデータは、
“KEYF01+”となります。
しかしバーコードリーダが認識したバーコードキャラクタは、
“KEYF01Q”となり、末尾が
“+”ではないため、チェックデジットエラーと判断し読み取りを完了しません。
チェックデジットの検査を行うバーコードリーダであれば、チェックデジット違いから誤読
を防ぐことができます。
6
Q 56 チェックデジットの計算方法(モジュラス43)
モジュラス43はCODE39において使用されるチェックデジットです。
■ 条件
チェックデジットは、バーコードデータの最後の文字の後(ストップキャラクタのすぐ前)に
置かれます。
■ 計算方法
① スタート/ストップキャラクタをのぞいたすべてのデータを、下表に従い数値化します。
② その数値の合計を求めます。
③ その合計を43で割り、余りを求めます。
④ 余りの数値を下表に従い、再度キャラクタに戻した文字がチェックデジットになります。
キャラクタ 数値 キャラクタ 数値 キャラクタ 数値 キャラクタ 数値
0 0 B 11 M 22 X 33
1 1 C 12 N 23 Y 34
2 2 D 13 O 24 Z 35
3 3 E 14 P 25 -- 36
4 4 F 15 Q 26 -- 37
5 5 G 16 R 27 (SPACE) 38
6 6 H 17 S 28 $ 39
7 7 I 18 T 29 / 40
8 8 J 19 U 30 + 41
9 9 K 20 V 31 % 42
A 10 L 21 W 32
(例) *ABCD1234 +□*の場合
+
3 4
1 2
A B C D
データ
↓
↓ ↓
↓ ↓
↓ ↓ ↓ ↓
10 + 11 + 12 + 13 + + + + 4 + 41 = 97
1 2 3
数値化
97 ÷43 = 2 余り 11
11 → B … チェックデジット
よって、*ABCD1234+B* となります。
7
Q 57 チェックデジットの計算方法(モジュラス10/3ウェイト)
モジュラス10/3ウェイトは、JAN、ITF、NW-7 において使用されるチェックデジットです。
■ 条件
・ バーコードデータとして使用できる文字は、0~9までの数字のみ。
ただし、NW-7 の場合、スタート/ストップキャラクタをのぞきます。
・ チェックデジットは、バーコードデータの最後の文字に置かれます。
NW-7 では、ストップキャラクタのすぐ前に置かれます。
■ 計算方法
①スタート/ストップキャラクタ及びチェックデジットを除いたバーコードデータの右の桁か
ら左の桁へ順に番号を付加します。
②奇数番号の桁には3を、偶数番号の桁には1を掛け、それらの合計を求めます。
③その合計を10で割り、その余りを求めます。
④余りが0の場合は、0がチェックデジットになります。余りが0以外の場合は、10から余
りを引いた値がチェックデジットになります。
(例)490123456789 □の場合
12 11 10 9 8 7 6 5 4 3 2 1
番 号
4 9 0 1 2 3 4 5 6 7 8 9
データ
× × × × × × × × × × × ×
数値化
1 3 1 3 1 3 1 3 1 3 1 3
=
=
=
=
=
=
=
=
=
=
=
=
4 + 27 + 0 + 3 + 2 + 9 + 4 + 15 + 6 + 21 + 8 + 27 = 126
126 ÷10 = 12 余り 6
10 ー 6 = 4 … チェックデジット
よって、4901234567894 となります。
8
Q 59 チェックデジットの計算方法(モジュラス11)
モジュラス11は NW-7 において使用されるチェックデジットです。
■ 条件
・ チェックデジットは、バーコードデータの最後の文字の後
(ストップキャラクタのすぐ前)に置かれます。
・ バーコードデータとして使用できる文字は、0~9までの数字のみ。
ただし、スタート/ストップキャラクタをのぞきます。
・ モジュラス11は、バーコードデータの中の最初の 6 桁までを使用します。
よってバーコードデータとしてスタート/ストップキャラクタを除き、6 桁以上必要です。
ただし、6 桁より多い場合は、最初の 6 桁のみがモジュラス11の計算の対象となり、
残りの桁は無視されます。
・ チェックデジットは、バーコードデータの最後の文字に置かれます。
NW-7 では、ストップキャラクタのすぐ前に置かれます。
■ 計算方法
①スタート/ストップキャラクタを除いた最初の6桁までの数字を取り出します。
②取り出した数字に先頭から順に7、6、5、4、3、2のウェイト(重み係数)を掛け、
それらの合計を求めます。
③その合計を11で割り、その余りを求めます。
④余りが0の場合は、チェックデジットは1に、余りが1の場合はチェックデジットは0になります。
余りが0、1以外の場合は、11からその余りを引いた値がチェックデジットになります。
(例)A2345678□Aの場合
2 3 4 5 6 7 8
データ
× × × × × ×
ウェイト
7 6 5 4 3 2 無視
=
=
=
=
=
=
14 + 18 + 20 + 20 + 18 + 14 = 104
104 ÷11 = 9 余り 5
11 ー 5 = 6 … チェックデジット
よって、A23456786Aとなります。
10
Q C ODE39を使っていますが、データが
文字化けしてしまうことがあります。
A 本当にそのように読み取れている
可能性があります。
けする
文字化 ここ!!
例えば下記のようなことが起こります。
は
理由
実物は「1-2」のバーコードなのに… バーコードとは違うデータが
入ってきてしまう。
このような現象を
「誤読」といいます。
例えばプリンタの不良で
バ ー の 一 部が 欠け てし
まうようなケースで、誤
読 が 発 生 する可 能 性 が
あります。
この部分だけが違います。
ば
うれこす チェックデジットをバーコードに付加することで
を
誤読 す!!
正しく読み取れたときだけ、データを出力します。
ま
防げ ※チェックデジットとは、読み誤りがないかチェックするために算出された数値です。
P11 付録をご参照ください。
※チェックデジットにより整合性が取れなかった場合は読み取りません。
読み取りデータ チェックデジット
読み取りOK
1-2 $
1+2 1 読み取りNG
※読み取る桁を限定すると更に効果的です。
チェックデジット
4