LXRPIZ04 チェックディジット計算
サブルーチンID |
機能分類 |
サブルーチン名 |
テーブル名 |
---|---|---|---|
LXRPIZ04 |
項目処理 |
LXRCIZ04 |
インタフェース
入力(区分:INPUT-PARM=I,CONSTANT=C) |
||||
---|---|---|---|---|
レベル |
項目名 |
属性 |
説明および設定値 |
区分 |
03 |
I-LENG |
P(2) |
長さ |
IL |
03 |
I-NUM |
X(37) |
数字列 |
I |
− |
− |
− |
− |
− |
− |
− |
− |
− |
− |
− |
− |
− |
− |
− |
出力(区分:OUTPUT-PARM=O,RTN-CODE=R) |
||||
---|---|---|---|---|
レベル |
項目名 |
属性 |
説明および設定値 |
区分 |
03 |
O-STR |
X(38) |
文字列 |
O |
03 |
O-CHK-DGT |
X(1) |
チェックディジット |
O |
03 |
O-RTN-CD |
X(1) |
リターンコード |
R |
− |
− |
− |
SPACE:正常終了 |
− |
− |
− |
− |
LXREZ009:NUMERICエラー |
− |
− |
− |
− |
LXREZ011:入力長が範囲外 |
− |
− |
− |
− |
LXREZ008:入力数字列に数字以外がある |
− |
− |
− |
− |
− |
− |
処理基準
-
入力された数値データ(最大37バイト)から,チェックディジット(モジュラス11)を求め出力する。
例1
I-LENG :5 I-NUM :'12345' ↓ O-STR :'123455' O-CHK-DGT:'5' O-RTN-CD :SPACE (計算例) データ 重み 1 × 6 = 6 2 × 5 = 10 3 × 4 = 12 4 × 3 = 12 5 × 2 = 10 (+ ----------- 50 50 ÷ 11 = 4…6 11 − 6 = 5
注意事項
-
1≦入力バイト長≦37の範囲外の場合は,結果は評価しない。
-
重みは,最右端から上位桁に向かって2,3,4,5,6,7の繰り返しとする。
-
剰余が0,1の場合,チェックディジットは0とする。2〜10の場合は,(11−剰余)をチェックディジットとする。