根据《html符号代码对照表GB 32100-2015 法人和其他组织统一社会信用代码编码规则》,第18位校验算法如下:
式中:
MOD(n,m)——表示整数求余函数,例如:函数MOD(31,31)的值为0;
i ——表示统一社会信用代码字符从左到右的位置序号;
——表示统一社会信用代码第i位置上的代码字符的值,字符对应的值见下表A。
——表示校验码;
——表示第i位上的加权因子, = MOD(,31),加权因子见表2.
校验码计算方法实例
输入的统一社会信用代码为91350100M000100Y4Z,校验代码唯一性计算步骤如下:
第一步:列出代码前17位字符位置序号i相对应的各个位置上的字符值。
i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
9 | 1 | 3 | 5 | 0 | 1 | 0 | 0 | 21 | 0 | 0 | 0 | 1 | 0 | 0 | 30 | 4 | |
第二步:由表4列出与字符位置序号i相对应的加权因子值。
i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
1 | 3 | 9 | 27 | 19 | 26 | 16 | 17 | 20 | 29 | 25 | 13 | 8 | 24 | 10 | 30 | 28 | |
第三步:计算与字符位置序号i相对应的乘积×。
i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
× | 9 | 3 | 27 | 135 | 0 | 26 | 0 | 0 | 420 | 0 | 0 | 0 | 8 | 0 | 0 | 900 | 112 |
第四步:计算级数之和。
= 1640
第五步:计算整数求余函数MOD。
级数之和1640模31余28,即MOD(,31)值为28
第六步:求出校验码字符值。
=31- MOD(,31)=31-28=3
第七步:查出校验码字符。
校验码字符值18对应的字符为3。
第八步:比较原始代码最后一位的字符与校验码字符
原始第十八位字符为“Z”,而计算出的校验码字符为“3”,与校验码不相等,则该“91350100M000100Y4Z”统一社会信用代码格式不正确。
若与校验码相等,则原始统一社会信用代码格式正确。
表1 代码字符集
代码字符 | 代码字符数值 |
0 1 2 3 4 5 6 7 8 9 | 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 T U W X Y | 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
表2 各位置序号上的加权因子
i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
1 | 3 | 9 | 27 | 19 | 26 | 16 | 17 | 20 | 29 | 25 | 13 | 8 | 24 | 10 | 30 | 28 | |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论