关于身份证号码的问题:机器是如何知道我输入了错误的身份证号码?为什么我的身份证号码结尾是X?身份证号码计算地址与性别的原理是什么?下面李海博客跟大家讲解下身份证号的编写规则,这些问题就迎刃而解了。
一、身份证号码的组成
1999年7月1日后身份证号码由之前的15位提升至现在的18位,在这里我们也是根据18位的身份证号码来讲解的,我们可以简单的将其认为是由4个部分组成的,如下图所示
1.地址码
第1到6位是地址码,其中第1-2位是省份的代码,3-4位是城市的代码,5-6位是区县的代码,户口所在地决定了身份证号码1-6位的具体数字
2.出生日期码
第7到14位是出生日期,7-10位是年份,11-12位是月份,13-14位是天数,这是每个人与生俱来的,比如出生日期的2021年1月1日,那么他的出生日期码为:20210101
3.顺序码
15-17位是顺序码,就是在同一地址码区域内,对同年同月同日生的人员进行编号,其中第17位是性别代码,奇数会分给男性,偶数会分给女性
4.校验码
顾名思义他的作用就是用来检验身份证号码是否正确的,机器也是根据这一位来判断身份证号码是否正确
它是由号码编制单位根据特定的编码规则计算出来的,是一个0-10的数字,如果结果是10将其作为尾号身份证号码就会变为19位,所以利用X来代替10这个结果,这样的话身份证号码依然还是18位
二、校验码的计算规则
1.计算余数
身份证号码1到17位的值都是确定的,我们需要根据这17个数字来计算校验码,每个位数的数字都对应了不同的系数,1到17位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
首先我们需要将每个位数的数字与对应的系数相乘得到乘积,然后求和,如上图橙色区域
7*4+9*1+10*6+5*1+8*3+4*4+2*1+1*9+6*3+3*2+7*0+9*3+10*2+5*1+8*0+4*1+2*1=235
随后求和结果除以11得到余数如上图蓝色区域
235/11=21余4
也可以利用mod函数+sumproduct函数组合求出结果:=MOD(SUMPRODUCT(B2:B18,C2:C18),11)
2.求出校验码
每个余数还对应了不同的校验码如下图所示,上一步中我们求出的余数为4,在这个表中我们可以看到4对应的校验码为8,所以身份证号码的最后一位就是8,也可以利用vlookup函数快速的引用结果,至此我们可以说是完整的编写完了一个身份证号码
以上就是今天分享的关于身份证号码的所有内容,大家可以动手做一下检验下自己的身份证号码!
发表评论