根据《GB 32100-2015 法人和其他组织统一社会信用代码编码规则》,第18位校验算法如下: 式中: MOD(n,m)——表示整数求余函数,例如:函数MOD(31,31)的值为0; i ——表示统一社会信用代码字符从左到右的位置序号; Ci ——表示统一社会信用代码第i位置上的代码字符的值,字符对应的值见下表A。 C18 ——表示校验码; Wi——表示第i位上的加权因子,Wi = MOD(3(i-1),31),加权因子见表2. 校验码计算方法实例 输入的统一社会信用代码为91350100M000100Y4Z,校验代码唯一性计算步骤如下: 第一步:列出代码前17位字符位置序号i相对应的各个位置上的字符值Ci。 i 1 2 3 3 4 5 5 0 6 1 7 0 8 0 9 10 11 12 13 14 15 16 17 0 0 1 0 0 30 4 Ci 9 1 21 0 第二步:由表4列出与字符位置序号i相对应的加权因子值Wi。 i Wi 1 1 2 3 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 9 27 19 26 16 17 20 29 25 13 8 24 10 30 28 第三步:计算与字符位置序号i相对应的乘积Ci×Wi。 i Ci1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ×Wi 9 3 27 135 0 26 0 0 420 0 0 0 8 0 0 900 112 第四步:计算级数之和。 精品文库 17i1(CiWi)= 1640 17第五步:计算整数求余函数MOD。 级数之和1640模31余28,即MOD(i1(CiWi),31)值为28 第六步:求出校验码字符值。 C18=31- MOD(i1(CiWi),31)=31-28=3 17第七步:查出校验码字符。 校验码字符值18对应的字符为3。 第八步:比较原始代码最后一位的字符与校验码字符 原始第十八位字符为“Z”,而计算出的校验码字符为“3”,与校验码不相等,则该“91350100M000100Y4Z”统一社会信用代码格式不正确。 若与校验码相等,则原始统一社会信用代码格式正确。 表1 代码字符集 代码字符 0 1 2 3 4 5 6 7 8 9 A B C D E F G H J K L M N P Q R 欢迎下载 代码字符数值 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2 精品文库 T U W X Y 26 27 28 29 30 表2 各位置序号上的加权因子 i Wi 1 1 2 3 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 9 27 19 26 16 17 20 29 25 13 8 24 10 30 28 欢迎下载 3 本文来源:https://www.wddqw.com/doc/53f79e6a996648d7c1c708a1284ac850ad020467.html