
校验位的计算规则较为复杂:
(1)前十七位数字身体代码的加权和公式
S =总和(Ai * Wi),i = 0,...,16验证号码的公式,首先将前17位数字的权重相加

Wi: 表示第i个位置的加权因子
Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
(2)计算模块
Y = mod(S,11)

(3)通过模块获取相应的校验码
Y: 0 1 2 3 4 5 6 7 8 9 10
校验码: 1 0 X 9 8 7 6 5 4 3 2
要检查ID卡号是否正确,原则是根据此规则计算验证码,然后将其与最后一位数字进行比较. 如果不一致,则有问题. 很难理解这个规则,让我们来看一个例子:

1. 将前一个ID号的17位数字乘以不同的系数. 从第一名到第十七名的系数为:
7-9-10-5-5-8-4-2-2-1-6-3-7-9-9-10-5-8-4-2.
2. 将这17位数字与系数相乘的结果相加.
3. 使用加法和除法11. 余数是什么?

4. 其余的只能有-11位数字,即1-2-3-4-5-6-7-8-9-10. 与之对应的最后一个ID卡的编号为1-X-9-9-8-7-6-6-5-4-3-4.
5. 根据验证码的比较,如果其余为3,则ID卡的第18位数字将显示为9. 如果对应的数字为10,则ID卡的最后一个数字为罗马数字2.
例如: 某人的号为[53010219200508011x],让我们看看该是否为合法.
首先,我们获得前17位的乘积之和
【(5 * 7)+(3 * 9)+(0 * 10)+(1 * 5)+(0 * 8)+(2 * 4)+(1 * 2)+(9 * 1) )+(2 * 6)+(0 * 3)+(0 * 7)+(5 * 9)+(0 * 10)+(8 * 5)+(0 * 8)+(1 * 4)+ (1 * 2)]
是189,然后将189除以11得到189/11 = 17 ---- 2,这意味着剩余数为2. 最后,通过相应的规则,您可以知道对应于余数2是X验证号码的公式,因此您可以确定这是正确的ID号.
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-228924-1.html
还将派出一艘航母驶入附近水域
你先合着找一个