文章目录
视频地址: https://www.bilibili.com/video/av73224851
第二代身份证号的组成
第二代身份证号为18位,各位数字对应了不同的信息(以下顺序从左往右):
AABBCCYYYYMMDDXXXV
AA | BB | CC | YYYY | MM | DD | XXX | V |
---|---|---|---|---|---|---|---|
2 | 2 | 2 | 4 | 2 | 2 | 3 | 1 |
省 | 市 | 县 | 出生年 | 出生月 | 出生日 | 顺序码 | 校验码 |
其中,最后一位校验数字,是通过之前的信息计算得来,拿到一个身份证号,可以通过重新计算校验数字并与最后一位做比较,判断是否身份证号不合要求。
校验算法
身份证校验算法的计算过程是:
- 根据各位权重,求得校验和
- 对校验和取余(11),求得校验序号
- 根据校验序号,找到对应的校验码
各位权重
身份证号从左往右各位的权重是:
校验码表
校验序号 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|---|
对应符号 | 1 | 0 | X | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
程序代码
#include <stdio.h>
int g_IDCard[18] = {
0 };
int g_Factor[17] = {
7, 9,</