
身份证号码最后一个数校验码是怎样算出来的
2个回答
展开全部
(身份证最后一位)是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位,而19位的号码违反了国家标准,并且我国的计算机应用系统也不承认19位的身份证号码。Ⅹ是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。
展开全部
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-余数的差
=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-余数的差
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询