關(guān)于的問題:機器是如何知道我輸入了錯誤的身份證號碼?為什么我的身份證號碼結(jié)尾是X?身份證號碼計算地址與性別的原理是什么?下面李海博客跟大家講解下身份證號的編寫規(guī)則,這些問題就迎刃而解了。
一、身份證號碼的組成
1999年7月1日后身份證號碼由之前的15位提升至現(xiàn)在的18位,在這里我們也是根據(jù)18位的身份證號碼來講解的,我們可以簡單的將其認(rèn)為是由4個部分組成的,如下圖所示
1.地址碼
第1到6位是地址碼,其中第1-2位是省份的代碼,3-4位是城市的代碼,5-6位是區(qū)縣的代碼,戶口所在地決定了身份證號碼1-6位的具體數(shù)字
2.出生日期碼
第7到14位是出生日期,7-10位是年份,11-12位是月份,13-14位是天數(shù),這是每個人與生俱來的,比如出生日期的2021年1月1日,那么他的出生日期碼為:20210101
3.順序碼
15-17位是順序碼,就是在同一地址碼區(qū)域內(nèi),對同年同月同日生的人員進(jìn)行編號,其中第17位是性別代碼,奇數(shù)會分給男性,偶數(shù)會分給女性
4.校驗碼
顧名思義他的作用就是用來檢驗身份證號碼是否正確的,機器也是根據(jù)這一位來判斷身份證號碼是否正確
它是由號碼編制單位根據(jù)特定的編碼規(guī)則計算出來的,是一個0-10的數(shù)字,如果結(jié)果是10將其作為尾號身份證號碼就會變?yōu)?9位,所以利用X來代替10這個結(jié)果,這樣的話身份證號碼依然還是18位
二、校驗碼的計算規(guī)則
1.計算余數(shù)
身份證號碼1到17位的值都是確定的,我們需要根據(jù)這17個數(shù)字來計算校驗碼,每個位數(shù)的數(shù)字都對應(yīng)了不同的系數(shù),1到17位的系數(shù)分別為:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
首先我們需要將每個位數(shù)的數(shù)字與對應(yīng)的系數(shù)相乘得到乘積,然后求和,如上圖橙色區(qū)域
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
隨后求和結(jié)果除以11得到余數(shù)如上圖藍(lán)色區(qū)域
235/11=21余4
也可以利用mod函數(shù)+sumproduct函數(shù)組合求出結(jié)果:=MOD(SUMPRODUCT(B2:B18,C2:C18),11)
2.求出校驗碼
每個余數(shù)還對應(yīng)了不同的校驗碼如下圖所示,上一步中我們求出的余數(shù)為4,在這個表中我們可以看到4對應(yīng)的校驗碼為8,所以身份證號碼的最后一位就是8,也可以利用vlookup函數(shù)快速的引用結(jié)果,至此我們可以說是完整的編寫完了一個身份證號碼
以上就是今天分享的關(guān)于身份證號碼的所有內(nèi)容,大家可以動手做一下檢驗下自己的身份證號碼!