sysLib.calculateChkDigitMod10

系统函数 sysLib.calculateChkDigitMod10 将模 10 校验数位放入以一系列整数开始的字符项中。


sysLib.calculateChkDigitMod10 语法图
input
以一系列整数开头的字符项。该项必须包含用于存放校验数位的附加位置,该位置紧跟在其它整数的右边。
checkLength
一个项,它包含 input 项中要使用的字符数,包括用于校验数位的位置。此项有 4 位,具有 SMALLINT 类型或 BIN 类型,并且不带小数位。
result
一个项,它接收下列两个值的其中一个:
  • 0,如果已创建校验数位的话
  • 1,如果未创建校验数位的话

此项有 4 位,具有 SMALLINT 类型或 BIN 类型,并且不带小数位。

可以在函数调用语句中使用 sysLib.calculateChkDigitMod10

示例

在以下示例中,myInput 是类型为 CHAR 的项并包含值 1734289;myLength 是类型为 SMALLINT 的项并包含值 7;myResult 是类型为 SMALLINT 的项:
  sysLib.verifyChkDigitMod10 (myInput, myLength, myResult);
使用了一种算法来派生模 10 校验数位,在所有情况下,都不考虑校验数位位置中的数字。就示例值对算法描述如下:
  1. 将输入数字的个位数位置乘以 2 并将每个备用位置从右到左乘以 2:
      8 x 2 = 16
      4 x 2 = 8
      7 x 2 = 14
  2. 将乘积(16814)的各个位与未乘以 2 的输入数字位(132)相加:
      1 + 6 + 8 + 1 + 4 + 1 + 3 + 2 = 26   
  3. 要得到校验数位,用以 0 结尾的下一个最大数字减去和数:
      30 - 26 = 4

    如果减运算得到 10,则校验数位是 0。

在此示例中,myInput 中的最前面的字符变为:
  1734284
使用条款 | 反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.