calculateChkDigitMod10()

システム関数 SysLib.calculateChkDigitMod10 は、一連の整数で始まる文字項目にモジュラス 10 チェック・ディジットを配置します。

  SysLib.calculateChkDigitMod10(
    text anyChar inOut,
    checkLength SMALLINT in,
    result SMALLINT inOut)
text
一連の整数で始まる文字項目。項目には、他の整数のすぐ右にチェック・ディジット用の追加の位置が含まれています。
checkLength
text 項目から使用する文字数を含む項目。 チェック・ディジットに使用される桁も含みます。この項目は、4 桁の SMALLINT 型または BIN 型で、小数点以下の桁はありません。
result
次の 2 つの値のいずれかを受け取る項目です。
  • チェック・ディジットが作成された場合は 0
  • チェック・ディジットが作成されなかった場合は 1

この項目は、4 桁の SMALLINT 型または BIN 型で、小数点以下の桁はありません。

SysLib.calculateChkDigitMod10 は関数呼び出し文で使用できます。

次の例では、myInput は CHAR 型の項目であり、値 1734289 を含みます。myLength は SMALLINT 型の項目であり、値 7 を含みます。myResult は SMALLINT 型の項目です。
  SysLib.verifyChkDigitMod10 (myInput, myLength, myResult);
モジュラス 10 チェック・ディジットはアルゴリズムを使用して派生され、すべての場合に、チェック・ディジットの位置に格納されている数値は考慮されません。 アルゴリズムについて、例の値を使用して説明します。
  1. 入力数の最小桁に 2 を乗算し、右から左の順で 1 桁おきに 2 を乗算します。
      8 x 2 = 16
      4 x 2 = 8
      7 x 2 = 14
  2. 2 を乗算していない入力数字 (132) に、生成された数字 (16814) を加算します。
      1 + 6 + 8 + 1 + 4 + 1 + 3 + 2 = 26   
  3. チェック・ディジットを算出するには、0 で終わる次に大きい数値から合計を減算します。
      30 - 26 = 4

    減算の結果が 10 ならば、チェック・ディジットは 0 です。

この例では、myInput の元の文字は次のようになります。
  1734284

関連リファレンス
EGL ライブラリー SysLib

フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.