校验位算法示例
根据中华人民共和国国家标准GB11643-1999,中华人民共和国公民身份证号码校验位的计算方法为ISO 7064:1983.MOD 11 -2 校验位计算方法。
假设某个17位数字是17位 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 加权因子 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 368
计算17位数字的每一位与对应的权重因子的乘积之和S:1×7+2×9+3×10+4×5+5×8+6× 4 + 7×2+8× 1+9×6+0×3+1×7+2×9+3×10+4×5+5×8+6×4+7×2=368;计算S÷11的余数T:368 mod 11=5;计算(12-T)÷11 的余数R。若R=10,则校验码为字母“X”;如果R≠10,则校验码为数字“R”:(12-5) mod 11=7。这个17位数字的校验码是7,聚合起来就是123456789012345677。按从右到左的数字顺序。
前言
ai 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 ? Wi 7 9 10 5 8 4 2 1 6 3 7 9 1 国家组织 机构代码包括八位数字(或大写拉丁字母)主体代码和一位数字(或大写拉丁字母)校验代码。校验码按如下公式计算: 8 C9=11-MOD(ΣCi×Wi,11) i=1 MOD-表示残差函数; i-表示从左到右代码字符的位置编号;
Ci-表示第i位代码字符的值采用下面“代码字符集”中列出的字符;
C9——代表校验码;
Wi - 表示第 i 个位置的权重因子,其值如下:
权重因子 i 1 2 3 4 5 6 7 8 Wi 3 7 9 10 5 8 4 2 如果MOD函数值为1(即C9=10),校验码应采用大写拉丁字母“X”表示;如果MOD函数值为0(即C9=11),则校验码仍用“0”表示;如果C9的值为1~9,则直接用C9的值表示校验码。
![]()
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网