・4-10 チェックデジット算出方
チェックデジットの算出方法はバーコード種によりいろいろな方法がありますが、次の3種類が一般的には用いられています。
(1)モジュラス10のウェイト3
モジュラス10はJANやInterleaved 2 of 5などで用いられます。
JANで「4912345」のチェックデジットを求めてみます。
- データの最も右側にある桁を奇数とし、奇数位置の数学を3倍します。
4 9 1 2 3 4 5 ? (5+3+1+4 ) × 3 = 3 9
- 次に偶数桁の和をとります。
4 + 2 + 9 + = 1 5
- 1と2の和をとります。
3 9 + 1 5 = 5 4
- 10から3の1の位の数字を引きます。この数字がチェックデジットになります。
1 0 - 4 = 6
この場合のチェックデジットは6で、データは「49123456」となります。
※3の結果が0の場合はチェックデジットは0となります。
(2)モジュラス16
モジュラス16は、NW-7に用いられる計算方法です。
NW-7は4種のスタートコード、4種のストップコードがあるため、スタートコード、ストップコードもチェックの対象としています。
NW-7で「A37859B」のチェックデジットを求めてみます。
- スタート、ストップコードを含めた全てのキャラクタを、第1表に基づいて数値に変換します。
そして、その数値を合計します。 1 6 + 3 + 7 + 8 + 5 + 9 + 1 7 = 6 5
- 1で合計した数値を16で割り、余りを求めます。
6 5 ÷ 1 6 = 余 り 1
- 16から余りの数値を引きます。
1 6 - 1 = 1 5
- 3で求めた数値を、第一表によりキャラクタに変換します。
15のキャラクタは+であるので、チェックデジットは+となります。
この場合のチェックデジットは+となります。
この場合のチェックデジットを含めたデータは、「A37856+B」となります。
第1表 モジュラス16 チェックデジット換算表
| 文字 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
| 数値 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
| 文字 |
- |
$ |
: |
/ |
・ |
+ |
A |
B |
C |
D |
| 数値 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
(3)モジュラス43
モジュラス43はCODE39で用いられるチェックデジットの計算方法です。CODE39で有効な43種類のキャラクタにそれぞれNumericNumberが割り当てられていて、数値に換算された後に計算します。CODE39で「*TEST*」のチェックデジットを求めてみます。
- 第2表より、すべてのデータキャラクタを数値に変換します。
(スタート、ストップコード「*」は除きます。) TEST→29,14,28,29
- 変換された数値の和を取ります。
2 9 + 1 4 + 2 8 + 2 9 = 1 0 0
- 2の結果を43で割り、余りを算出します。
100÷43=余り14
- 3で算出した余りの14を、第2表でキャラクタに変換します。
14→E
チェックデジットはEで、データは「*TESTE*」となります。
第2表 モジュラス43 チェックデジット換算表
| 文字 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
| 数値 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
| 文字 |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
| 数値 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
| 文字 |
U |
V |
W |
X |
Y |
Z |
- |
・ |
|
$ |
/ |
+ |
% |
| 数値 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
|