六顺网 > 创业创新 >

身份证为什么有x(身份证最后一位数是如何编码的)

时间: admin 创业创新

之前很多粉丝都问到关于身份证号码的问题:机器是如何知道我输入了错误的身份证号码?为什么我的身份证号码结尾是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

首先我们需要将每个位数的数字与对应的系数相乘得到乘积,然后求和,如上图橙色区域

7x4+9x1+10x6+5x1+8x3+4x4+2x1+1x9+6x3+3x2+7x0+9x3+10x2+5x1+8x0+4x1+2x1=235

随后求和结果除以11得到余数如上图蓝色区域

235/11=21余4

也可以利用mod函数+sumproduct函数组合求出结果:=MOD(SUMPRODUCT(B2:B18,C2:C18),11)

2.求出校验码

每个余数还对应了不同的校验码如下图所示,上一步中我们求出的余数为4,在这个表中我们可以看到4对应的校验码为8,所以身份证号码的最后一位就是8,也可以利用vlookup函数快速地引用结果,至此我们可以说是完整的编写完了一个身份证号码

以上就是今天分享的关于身份证号码的所有内容,大家可以动手做一下检验下自己的身份证号码

1647