身份证的最后一位校验码是根据什么公式算出来的?

2025-01-01 10:33:00
推荐回答(1个)
回答1:

excel中的数组公式:
=REPLACE(A2,7,,19)&MID("10X98765432",MOD(SUM(MID(REPLACE(A2,7,,19),ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)
按 ctrl + shift + 回车结束公式

意思是以2为底,从17~1每个数为幂分别求值,再以11为除数,分别求出该17个值的余数,再分别与15位身份证号添加"19"后的17个数相乘,并求这个17乘积的和,再将该和除以11,求余数.
最后,
如果余数是0,第18位是1;
是1,第18位是0;
是2,第18位是X;
如果大于2,第18位是12-余数的差