身份证号码尾号的校验码是由什么公式计算出来的

2025-01-01 00:02:28
推荐回答(4个)
回答1:

校验码是根据前面十七位数字码,按照ISO
7064:1983.MOD
11-2校验码计算出来的检验码。
具体的公式举例说明为:
某男性公民身份号码本体码为34052419800101001,首先按照公式计算:∑(ai×Wi)(mod
11),其中,i表示号码字符从右至左包括校验码在内的位置序号;
a[i]表示第i位置上的号码字符值;
W[i]示第i位置上的加权因子,其数值依据公式
W[i]
=
2^(i-1)
mod
(11)计算得出。
则,设R=∑(a[i]×W[i])(mod
11)
=
2,同时R的值【0
1
2
3
4
5
6
7
8
9
10】对应取值为【1
0
X
9
8
7
6
5
4
3
2】。
计算结果为2的校验码为X,所以该人员的公民身份号码应该为
34052419800101001X。
扩展资料:
身份证号码的结构和形式:
1、号码的结构:公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
2、地址码:表示编码对象常住户口所在县(县级市、旗、区)的行政区划代码,按GB/T2260的规定执行。
3、出生日期码:表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。
4、顺序码:表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
5、校验码:根据前面十七位数字码,按照ISO
7064:1983.MOD
11-2校验码计算出来的检验码。
参考资料来源:百度百科-身份证号码
参考资料来源:百度百科-身份证校验位

回答2:

身份证最后一位是根据前面十七位数字码,按照ISO
7064:1983.MOD
11-2校验码计算出来的检验码。计算方法:
1、将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2

2、将这17位数字和系数相乘的结果相加;
3、用加出来和除以11,看余数是多少;
4、余数只可能有0、1、2、3、4、5、6、7、8、9、10这11个数字。其分别对应的最后一位身份证的号码为1、0、X、9、8、7、6、5、4、3、2;
5、通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的X。
例如:某男性的身份证号码是34052419800101001X。
计算3*7+4*9+0*10+5*5+...+1*2,前17位的乘积和是189;用189除以11得出的结果是商17余2,通过对应规则就可以知道余数2对应的数字是x。所以,这是一个合格的身份证号码。
在Excel中的简化参考公式如下两种:(以下皆为数组公式,身份证号码在B2单元格)
1、按规则:将2的17次幂+2的16次幂+……+2的1次幂分别对应乘以身份证号码的1-17位数字,最后求和,再除以11,余数对应相应的字符:
2、按规律取数:将身份证号码1-17位数字,分别乘以给定数字后求和,再除以11,余数对应相应的字符:
扩展资料:
在不同编程语言中的计算代码:
1、Python
计算代码
2、Swift4
计算代码
3、C++
计算代码
4、PHP
计算代码
参考资料来源:搜狗百科-身份证校验码

回答3:

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位是1;
是2,第18位是X;
如果大于2,第18位是12-余数的差

回答4:

身份证号码尾号的校验码的计算方法为:
1)将前面的身份证号码17位数分别乘以不同的系数,从第一位到第十七位的系数分别为:7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2;
2)将这17位数字和系数相乘的结果相加;
3)用加出来和除以11,看余数是多少;
4)在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)
4)通过计算,余数只可能有0、1、2、3、4、5、6、7、8、9、10这11个数字,其分别对应的最后一位身份证的号码为1、0、X、9、8、7、6、5、4、3、2;
5)通过上述对应规则就可以知道身份证余数2对应的字符是X,如果其身份证最后1位是X,则这是一个合格的身份证号码,否则是伪造的身份证