當前位置:股票大全官網 - 股票行情 - 校驗碼算法的壹個例子

校驗碼算法的壹個例子

根據中華人民共和國國家標準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加權因子79 105842 1637965438。

計算17位數的每壹位數與對應的加權因子的乘積之和:1×7+2×9+3×10+4×5+5×8+6×4+7×2+8×1+9×6+0。計算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。

加權因子公式為wi = 2(n-1)(mod 11),n是從1開始從右到左的數列的順序號。

命令

ai 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7?WI 7 9 10 584 2 16 379 10 584 2 1國家組織機構代碼由八位數字(或大寫拉丁字母)本體代碼和壹位數字(或大寫拉丁字母)校驗碼組成。校驗碼按以下公式計算:8c9 = 11-mod (∑ ci× wi,11)I = 1 mod-表示余數函數;I-表示代碼字符從左到右的順序號;

ci-表示第I個位置的代碼字符的值,使用下列代碼字符集中列出的字符;

C9-表示校驗碼;

wi-表示第I個位置的加權因子,其值如下:

加權因子I 1 23456 78 WI 379 1 5842當MOD函數值為1(即C9=10)時,校驗碼用大寫拉丁字母“X”表示;當MOD函數值為0時(即C9=11),校驗碼仍用“0”表示;當C9的值為1到9時,校驗碼直接用C9的值表示。