校验码系统

校验码系统是产生校验码并校验包括校验码在内的字符串的一套规则。它可以防止在抄录和键入字符串时产生的错误。

查错类型
单一字符替代错误，如1234被错录为4234
单一字符对换错误，如12345被错录为12354或12543
位移错误，如_123被错录为123_
双替代错误，如1234567被错录为7234587

类型
ISO 2108
ISO 2984
ISO 6166
ISO 7064校验码系统
纯系统
 表示方法  适用范围  校验码数目及类型  ISO 7064 Mod 11-2  数字型字符串  1位数字或附加符X ISO 7064 Mod 37-2  字母数字型字符串  1位数字或字母或附加符* ISO 7064 Mod 97-10  数字型字符串  2位数字 ISO 7064 Mod 661-26  字母型字符串  2位字母 ISO 7064 Mod 1271-36  字母数字型字符串  2位数字或字母

混合系统
 表示法  应用  字符数目及类型  ISO 7064 MOD 11,10  数字串  1位数字 ISO 7064 MOD 27,26  字母串  1位字母 ISO 7064 MOD 37,36  字母数字串  1位数字或字母

计算方法
ISO 7064
纯系统
纯系统字符串满足此公式的校验：

n：字符串的字符个数（包括校验码）
i：字符位置序号（由右至左，包括校验码，空格与分隔符不及），即最右边的字符i=1
ai：字符值（见下表）
r：底数，几何级数的基数
M：模数
 字符  数字字符值  字母字符值  字母数字字符值  备注 0  0   0  1  1   1  2  2   2  3  3   3  4  4   4  5  5   5  6  6   6  7  7   7  8  8   8  9  9   9  X  10     ISO 7064 MOD 11-2设置的附加码 A   0  10 B   1  11 C   2  12 D   3  13 E   4  14 F   5  15 G   6  16 H   7  17 I   8  18 J   9  19 K   10  20 L   11  21 M   12  22 N   13  23 O   14  24 P   15  25 Q   16  26 R   17  27 S   18  28 T   19  29 U   20  30 V   21  31 W   22  32 X   23  33 Y   24  34 Z   25  35 *   26  36  ISO 7064 MOD 37-2设置的附加符

一位校验码计算
用递归法，按规则MOD 11-2为字符串0794设置一个校验码，此时M=11，r=2，n=5：
 步骤j  前次运行结果Pj + 下一字符值a(n-j+1) = 中间和Sj   中间和Sj × 底数r = 运算结果P(j+1) 1  0 + 0 = 0   0 × 2 = 0 2  0 + 7 = 7   7 × 2 = 14 3  14 + 9 = 23   23 × 2 = 46 4  46 + 4 = 50   50 × 2 = 100
最后，100+校验码值要与1（mod 11）同余，所以校验码为0，整个受保护字符串为07940。
多项式法
权数
权数公式：
前15个位置的权数见下表：
 位置序号 151413121110987654321  ISO 7064,MOD 11-2 5842163791058421 ISO 7064,MOD 37-2 30152613253134172732168421 ISO 7064,MOD 97-10 53155054934817627909303101 ISO 7064,MOD 661-26 1294882733415471993894987056222539015261 ISO 7064,MOD 1271-36 7699045908753215642871837389362590025361
用多项式法，按规则MOD 11-2为字符串0794设置一个校验码：
 字符位置i 54321  权数2(i-1)(mod 11) 58421 字符值ai 0794 乘积 056368 乘积之和 100
乘积之和加上校验码必须与1（模11）同余，所以校验码为0，整个字符串为07940
两位校验码
递归法
多项式法
Category:错误检测与校正