最初のページに戻ります。

総合の目次があるページに戻ります。

よく使うマニュアルです

Wiki

updated on 2004.06.23

9.33.JAN13桁の最後のディジットの求め方

[ Previous ] [ HOME ] [ Upper ] [ Next ]


パソコン担当の女の子が、腰を痛めて、入院した。そして、その子の担当の仕事で、商品のバーコードで、日本で設定すべきバーコードを、設定せねばならなくなった。入院期間中、仕事を担当している子から聞かれた。「ねえ、バーコードの最後の数字って、どうやって決まるの?」「知らない」「モジュラス10って聞いたけど」「じゃあ、AS/400のマニュアルに出ているよ」「マニュアルにがてなんだよなー」「あ、そう」「前はどうしてたの?」「なんか機械みたいなので、実際にバーコード出してたけど、それ見つからないのよ」

で、ほっとけなくなり、昼休みに調べてみた。

AS/400のモジュラス10の解説

AS/400 データ記述仕様書 バージョン 3 3.3.21.1 妥当性検査

ベース・ナンバーの各桁について、モジュラス 10 加重係数およびモジュラス 11加重係数があります。桁は、(チェック・ディジットを除き)右端の桁から数えます。

モジュラス 10 の加重係数は、1、3、5、. . .、31 桁目については 2 で、2、4、 6、. . .、30 桁目については 1 です。

モジュラス 10 の自己チェック・ディジットは、次のようにして算出します。

1. ベース・ナンバーの 1 の位(右端の桁)の数字、およびそこから 1 桁おきの数字を取り出して、各数字に 2 を掛けます。

2. ステップ 1 の積の各桁の数字と、ステップ 1 で乗算に使用しなかったベース・ナンバーの数字とを加算します。

3. ステップ 2 の和を、その和より大きくゼロで終わる最小の数から引きます。

この差が自己チェック・ディジットになります。

例:

ベース・ナンバー 6 1 2 4 8  
1 の位およびそこから 1 桁おきの数字 6   2   8  
加重係数 2 を掛ける x 2   x 2   x 2  
12   4   16  
乗算に使用しなかった数字   1   4    
積の各桁の数字 および乗算に使用しなかった数字を加算する 1 + 2 +1 + 4 + 4 + 1 + 6 = 19
1 の位が 0 になるよう切り上げ 20
減算 -19
自己チェック・ディジット 1

JAN13の最終桁の計算

ところが、これでは、JAN13の最終桁にはならなかった。インターネットで、検索したら、最終桁の計算式が出てきた。そして、上記の計算方法とは違うことが分かった。同じくモジュラス10と言っているが、違った。

とても簡単です。

  1. 各桁に順番に、1と3を交互に掛け合わせ、その合計を求める(C14)。

  2. その合計を10で割った余りを、10から引く(C15)。

  3. もしこれが、10以上ならば、0とする(C16)。

これで求まった。なにもRPGで作成する事もないので、エクセルで作りました。A2からA13はA1を、分解しただけです。

jan131.gif

jan132.gif

このとき参照した、ウエッブは、

ずぱ001

www.barcode.co.jp

などでした。

1998/9/26


[ Previous ] [ HOME ] [ Upper ] [ Next ]

You are at K's tips-n-kicks of AS/400

 

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送