【 – 写作指导】
篇一:《身份证号码编码规则》
身份证号码编码规则
18 位身份证号码编码规则:根据〖中华人民共和国国家标准 GB 11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。可以用字母表示如为 ABCDEFYYYYMMDDXXXR。其含义如下:
1. 地址码(ABCDEF):表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按 GB/T2260 的规定执行。
2. 出生日期码(YYYYMMDD):表示编码对象出生的年、月、日,按 GB/T7408 的规定执行,年、月、日分别用 4 位、2 位(不足两位加 0)、2(同上)位数字表示,之间不用分隔符。
3. 顺序码(XXX):表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
4.校验码(R):一位数字,通过前 17 位数字按照 ISO 7064:1983.MOD 11-2 校验码计算得出。
15 位的身份证编码首先把出生年扩展为 4 位,简单的就是增加一个 19,但是这对于 1900 年出生的人不使用(这样的寿星不多了)
关于地址码含义的详细解释:身份证前六位是地区代码,我们用 ABCDEF 表示。 代码的解释规则如下:
A:国内区域
1 华北三省二市
2 东北三省
3 华东六省一市
4 华南六省
5 西南四省一市
6 西北五省
7 台湾
8 港澳
B(或者说是 AB,就是前 2 位):省(直辖市,自治区,特别行政区)代码
按照 A 划定的分区定义省代码,有直辖市的,直辖市列前,其余按离直辖市的距离排序,没有直辖市的,按离北京的远近排序。
具体省(直辖市,自治区,特别行政区)代码如下:
11-15 京、津、冀、晋、蒙
21-23 辽、吉、黑
31-37 沪、苏、浙、皖、闽、赣、鲁
41-46 豫、鄂、湘、粤、桂、琼
50-54 渝、川、贵、云、藏
61-65 陕、甘、青、宁、新
81-82 港、澳
生日期码(YYYYMMDD)表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。例如:1981 年 5 月 11 日就用 19810511 表示。
顺序码(XXX)(身份证第十五位到十七位)是县、区级政府所辖派出所的分配码,每个派出所分配码为 10 个连续号码,例如“000-009”或“060-069”,其中单数为男性分配码,双数为女性分配码,如遇同年同月同日有两人以上时顺延第二、第三、第四、第五个分配码。如:007 的就是个男生,而且和他同年月日生的男生至少有两个,他们的后四位是 001* 和 003*。分配顺序码中“999、998、997、996”四个顺序号分别为男女性百岁以上老人专用的特定编号。
关于校验码
18 位身份证最末位是校验码,是按一定的规则产生的,用于校验身份证真伪,按理这规则属于保密的,X 代表的是其中一个校验码,是 10。校验码从 0 到 X 共 11 个。
校验码是通过一系列数学计算得出来的,具体校验的计算方式如下:
公式为:∑(Ai×Wi)(mod 11)
i——表示号码字符从右至左包括校验码在内的位置序号;
Ai——表示第 i 位置上的号码字符值;
Wi——示第 i 位置上的加权因子(其值已定),其数值依据公式 Wi=2^(i-1)(mod 11) 计算得出。其各位对应的值依次为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
例如:某男性公民身份号码为 34052419800101001V(V为校验码),对前 17 位数字本体码首先按照上面公式加权求和计算:
∑(Ai×Wi) =( 21 + 36 + 0 + 25 + 16 + 16 + 2 + 9 + 48 + 0 + 0 + 9 + 0 + 5 + 0 + 0 + 2 ) = 189
∑(Ai×Wi)(mod 11) = 189 mod 11 = 2
然后根据计算的结果,从下面的表中查出相应的校验码。其中 X 表示计算结果为 10。
根据上表,查出计算结果为 2 的校验码为 X,所以该人员的公民身份号码应该为 34052419800101001X。
如果校验码不符合这个规则,则肯定是假号码。
关于 18 位身份证号码尾数是“X”的一种解释:因为按照上面的规则,校验码有 11 个,而不是 10 个,所以不能用 0-9 表示。所以如果尾号是 10,那么就得用 X 来代替,因为如果用 10 做尾号,那么此人的身份证就变成了 19 位,而 19 位的号码违反了国家标准,并且我国的计算机应用系统也不承认 19 位的身份证号码。Ⅹ 是罗马数字的 10,用 X 来代替 10,可以保证公民的身份证符合国家标准。
//省份证号码真伪识别程序,第一位号码不计在内 #include<iostream> #include<math.h> using namespace std; int main() {
char st[19];
int num[19],w[19],s=0; freopen("num.txt","r",stdin); freopen("res.txt","w",stdout); cin>>st;
for(int i=1; i<=18; i++) num[i]=st[i]-'0'; for(int i=1;i<=18;i++)
cout<<num[i]; cout<<endl;
if((num[15]*100+num[16]*10+num[17])%2==0) cout<<"女性\n"; else cout<<"男性\n"; for(int i=1; i<=17; i++){ w[i]=(int)pow(2,18-i)%11; cout<<w[i]<<" "; s+=num[i]*w[i]; } s%=11;
if(s==0 && num[18]==1){ cout<<"\nok!\n"; return 0; }
if(s==1 && num[18]==0){ cout<<"\nok!\n"; return 0; }
if(s==2 && (st[18]=='X' || st[18]=='x')){ cout<<"\nok!\n"; return 0; }
if((s>=3 && s<=10) && (s+num[18]==12)){ cout<<"\nok!\n"; return 0; }
cout<<"\nError!\n"; return 0; }
篇二:《身份证号码编码规则》
身份证的编码规律
18位身份证号码由17位数字本体码和1位校验码组成。排列顺序从左至右依次为:6位数字地址码,8位数字出生日期码,3位数字顺序码和1位数字校验码。如果将18位身份证号码用一个通式“ssqqxxyyyymmddnnnj”,则: s--省、直辖市、自治区
q--市、地区(北京市除密云和延庆外,其他区的前4位地址码ssqq=1101) x--县(如北京市为:东城区01,西城区02,崇文区03,宣武区04,朝阳区05,丰 台区06,石景山区07,海淀区08,门头沟区09,房山区11,通州区12,顺义区13,昌平区14,大兴区15,怀柔区16,平谷区17,密云前6位数为110228,延庆前6位数为110229)
y--出生年
m--出生月
d--出生日
n--顺号(顺序码,表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号)
j--较验码(随机在11个数字中产生: 1 0 X 9 8 7 6 5 4 3 2)
篇三:《中国各省身份证开头》
<转>中国各省身份证开头
2008年11月26日 星期三 下午 08:06
一、四个直辖市
1、北京 11
2、天津 12
3、上海 31
4、重庆 51
二、五个自治区
1、内蒙 15
2、新疆 65
3、西藏 54
4、宁夏 64
5、广西 45
三、两个特别行政区
1、香港特别行政区(港)
2、澳门特别行政区(澳)
四、23个省
1、黑龙江23
2、吉林省22
3、辽宁省21
4、河北省13
5、山西省14
6、青海省63
7、山东省37
8、河南省41
9、江苏省32
10、安徽省34
11、浙江省33
12、福建省35
13、江西省36
14、湖南省43
15、湖北省42
16、广东省44
17、台湾省
18、海南省46
19、甘肃省62
20、陕西省61
21、四川省51
22、贵州省52
23、云南省53
数字排序:
北京 11
天津 12 河北 13 山西 14 内蒙 15 辽宁 21 吉林 22 黑~ 23 上海 31 江苏 32 浙江 33 安徽 34 福建 35 江西 36 山东 37 河南 41 湖北 42 湖南 43 广东 44 广西 45 海南 46 四川 51 重庆 51 贵州 52 云南 53 西藏 54 陕西 61 甘肃 62 青海 63 宁夏 64 新疆 65
篇四:《18位身份证号码各位的含义》
18位身份证号码各位的含义:
1-2位省、自治区、直辖市代码;
3-4位地级市、盟、自治州代码;
5-6位县、县级市、区代码;
7-14位出生年月日,比如19670401代表1967年4月1日;
15-17位为顺序号,其中17位(倒数第二位)男为单数,女为双数;
18位为校验码,0-9和X。作为尾号的校验码,是由把前十七位数字带入统一的公式计算出来的,计算的结果是0-10,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位。X是罗马数字的10,用X来代替10。
举例:
130503 19670401 0012这个身份证号的含义: 13为河北,05为邢台,03为桥西区,出生日期为1967年4月1日,顺序号为001,2为校验码。
车牌号的第一个是汉字:代表该车户口所在省的简称:如四川就是川,北京就是京,重庆就是渝,上海就是沪……,第二个是英文:代表该车所在地的地市一级代码,规律一般是这样的,A是省会,B是该省第二大城市,C是该省第三大城市,依此类推。然后就是后五位啦,这后五位是这样的规律,如果你是第一个在该省该地区上的第一个车牌,从理论上讲你车牌后五位就是00001,如果你是第8965位车主,你的车牌的后五位理论上就应该是08965,如果车牌超过了数字的容量就是第100000万位时,就从第一位开始用字母A,后面用0001至9999,用完后第一位改成B再跟0001至9999,依此类推
ISBN的组成
由十个数码组成长短不一的四部分,分别是:
国别语种识别代号:用以识别出版社所属的国家、语文、地域等。香港的代号是「962」或「988」。
出版社识别代号:识别某一出版社。
书名版别代号:由出版社自行为新出版的书种或版本编配。 稽核数码:用以核对书号是否正确。
每部分由连字号或空位分隔。
我国采用四级六位编码制,前两位表示省(市、自治区),第三位代表邮区,第四位代表县(市),最后两位数字是代表从这个城市哪个投递区投递的,即投递区的位置。
篇五:《身份证的意义》
一、身份证号码执行标准:18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999《公民身份号码》。{北京身份证数字含义}.
GB11643-1999《公民身份号码》为GB11643-1989《社会保障号码》的修订版,其中指出将原标准名称“社会保障号码”更名为“公民身份号码”,另外GB11643-1999《公民身份号码》从实施之日起代替GB11643-1989。
二、编码规则:公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码,可以用字母表示如为ABCDEFYYYYMMDDXXXR。其含义如下:
1. 地址码(ABCDEF):表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。{北京身份证数字含义}.
2. 出生日期码(YYYYMMDD):表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日分别用4位、2位(不足两位加0)、2(同上)位数字表示,之间不用分隔符。
3. 顺序码(XXX):表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
4.校验码(R),一位数字,通过前17位数字根据一定计算得出。
三、关于地址码含义的详细解释:
身份证前六位是地区代码,我们用ABCDEF表示。 代码的解释规则如下:
A:国内区域
1 华北三省二市
2 东北三省
3 华东六省一市
4 华南六省
5 西南四省一市
6 西北五省
7 台湾
8 港澳
B(或者说是AB,就是前2位):省(直辖市,自治区,特别行政区)代码
按照A划定的分区定义省代码,有直辖市的,直辖市列前,其余按离直辖市的距离排序,没有直辖市的,按离北京的远近排序。
具体省(直辖市,自治区,特别行政区)代码如下:
11-15 京 津冀 晋 蒙
21-23 辽 吉黑
31-37 沪 苏浙 皖 闽 赣 鲁
41-46 豫 鄂湘 粤 桂 琼
50-54 渝 川贵 云 藏
61-65 陕 甘青 宁 新
81-82 港 澳
CD:城市代码
从01开始排,对于直辖市,CD=01表示市辖区,CD=02表示辖县;省的城市代码从省会开始排,比如2101=沈阳 2102=大连…… 只有地级城市有独立的城市代码,县级市没有。
EF:市辖区、郊区、郊县、县级市代码
如果EF=00,指代这个城市,不特定区县;对于非直辖市,如EF=01,指代市辖区(任意一个区),02开始指代特定的区。
其中:
E=0代表市辖区,
E=1代表郊区,{北京身份证数字含义}.
E=2代表郊县,
E=8代表县级市。
对于直辖市,从01开始就依次排区,没有市区和郊区的代码区分。:
有关更详细的资料见附录。
四、生日期码(YYYYMMDD)表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。例如:1981年05月11日就用19810511表示。
五、顺序码(XXX)(身份证第十五位到十七位)是县、区级政府所辖派出所的分配码,每个派出所分配码为10个连续号码,例如“000-009”或“060-069”,其中单数为男性分配码,双数为女性分配码,如遇同年同月同日有两人以上时顺延第二、第三、第四、第五个分配码。如:007的就是个男生,而且和他同年月日生的男生至少有两个,他们的后四位是001*和003*。分配顺序码中“999、998、997、996”四个顺序号分别为男女性百岁以上老人专用的特定编号。
六、关于校验码
校验码是通过一系列数学计算得出来的,具体校验的计算方式如下:
1. 对前17位数字本体码加权求和
公式为:S = Sum(Ai * Wi), i = 0, … , 16
其中Ai表示第i位置上的身份证号码数字值,Wi表示第i位置上的加权因子,其各位对应的值依次为: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
通俗解释:身份证第一位数字X7+第二位X9+第三位X10+第四位X5+第五位X5+第六位X8+第七位X4+第八位X1+第九位X6+第十位X3+十一位X7+十二位X9+十三位X10+十四位X5+十五位X8+十六位X4+十七位X2;计算出总和(用S)表示。
2. 以11对计算结果取模
Y = mod(S, 11)
通俗解释:用S除以11,看最后的余数。如果除尽,为0;余数为1,则计为1;最大余数为10;全部数字为0-10共11个数字。(用Y表示)。
3. 根据模的值得到对应的校验码{北京身份证数字含义}.
对应关系为:
Y值: 0 1 2 3 4 5 6 7 8 9 10
校验码: 1 0 X 9 8 7 6 5 4 3 2
通俗解释:余数为0,则校验码为1;依次类推:余数为1,则校验码对应0;以下:2–X;3–9;4–8;5–7;6–6;7–5;8–4;9-3;10-2。
如果校验码不符合这个规则,则肯定是假号码。
关于18位身份证号码尾数是“X”的一种解释:因为按照上面的规则,校验码有11个,而不是10个,所以不能用0-9表示。所以如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位,而19位的号码违反了国家标准,并且我国的计算机应用系统也不承认19位的身份证号码。Ⅹ是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。
根据〖中华人民共和国国家标准 GB 11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
15位升18的方法
根据〖中华人民共和国国家标准 GB 11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
地址码表示编码对象常住户口所在县(市、旗、区)的行政区划代码。生日期码表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。顺序码表示同一地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。顺序码的奇数分给男性,偶数分给女性。校验码是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。下面举例说明该计算方法。
15位的身份证编码首先把出生年扩展为4位,简单的就是增加一个19,但是这对于1900年出生的人不使用(这样的寿星不多了)。
篇六:《我国各地身份证号码开头》
华北地区:
名称 代号 北京 11………
天津 12………
河北 13………
山西 14………
内蒙
东北地区:
名称
辽宁
吉林
黑龙江
华东地区:
名称
上海
江苏
浙江
安徽
福建
江西
山东
华中地区:
名称 15……… 代号 21……… 22……… 23……… 代号 31……… 32……… 33……… 34……… 35……… 36……… 37……… 代号
河南 41……… 湖北 42……… 湖南 43……… 广东 44……… 广西 45……… 海南 46………
西南地区:
名称
重庆
四川
贵州
云南
西藏
西北地区:{北京身份证数字含义}.
名称
陕西
甘肃
青海
宁夏
新疆
台湾地区:
名称
台湾 代号 50……… 51……… 52……… 53……… 54……… 代号 61……… 62……… 63……… 64……… 65……… 代号 71……
香港 810000,澳门820000
篇七:《身份证编码规则》
身份证编码规则
一、编码规则:
根据中华人民共和国国家有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码,可以
用字母表示如为ABCDEFYYYYMMDDXXXR。其含义如下:
1. 地址码(ABCDEF):表示编码对象常住户口所在县(市、旗、区)的行政区划代码。
2. 出生日期码(YYYYMMDD):表示编码对象出生的年、月、日,分别用4位、2位(不足两位加0)、2位(不足两位加0)数字表示,之间不用分隔符。
3. 顺序码(XXX):表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
4.校验码(R),一位数字,通过前17位数字根据一定计算得出。
二、关于地址码含义的详细解释:
身份证前六位是地区代码,我们用ABCDEF表示。 代码的解释规则如下:
A 国内区域 : 1 华北三省二市 2 东北三省 3 华东六省一
4 华南六省 5 西南四省一市 6 西北五省
7 台湾 8 港澳
B或者说是AB,就是前2位:省(直辖市,自治区,特别行政区)代码 按照A划定的分区定义省代码,有直辖市的,直辖市列前,其余按离直辖市的距离排序,没有直辖市的,按离北京的远近排序。
具体省(直辖市,自治区,特别行政区)代码如下:11-15 京 津 冀 晋 21-23 辽 吉 黑 31-37 沪 苏 浙 皖 闽 赣 鲁 41-46 豫 鄂 湘 粤 桂 琼 50-54 渝 川 贵 云 藏 61-65 陕 甘 青 宁 新 81-82 港 澳
CD城市代码 : 从01开始排,对于直辖市,CD=01表示市辖区,CD=02表示辖县;省的城市代码从省会开始排,比如2101=沈阳 2102=大连 只有地级城市有独立的城市代码,县级市没有。
EF:市辖区、郊区、郊县、县级市代码:如果EF=00,指代这个城市,不特定区县;对于非直辖市,如EF=01,指代市辖区(任意一个区),02开始指代特定的区。其中:E=0代表市辖区 E=1代表郊区 E=2代表郊县 E=8代表县级市 对于直辖市,从01开始就依次排区,没有市区和郊区的代码区分。
三、生日期码(YYYYMMDD):
表示编码对象出生的年、月、日,分别用4位、2位(不足两位加0)、2位(不足两位加0)数字表示,年、月、日之间不用分隔符。例如:1981年05月11日就用19810511表示。
1
四、顺序码 (XXX):
(身份证第十五位到十七位)是县、区级政府所辖派出所的分配码,每个派出所分配码为10个连续号码,例如;:“000-009”或“060-069”,其中单数为男性分配码,双数为女性分配码,如遇同年同月同日有两人以上时顺延第二、第三、第四、第五个分配码。如:007的就是个男生,而且和他同年月日生的男生至少有两个,他们的后四位是001*和003*。分配顺序码中“999、998、997、996”四个顺序号分别为男女性百岁以上老人专用的特定编号。
五、关于校验码:
校验码是通过一系列数学计算得出来的,具体校验的计算方式如下:
1. 对前17位数字本体码加权求和 :公式为:S = ∑(Ai × Wi)
其中Ai表示第i位置上的身份证号码数字值,Wi表示第i位置上的加权因子,其各位对应的值依次为: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 通俗解释: 身份证第一位数字×7+第二位×9+第三位×10+第四位×5+第五位数字×8+第六位数字×4+第七位数字×2+第八位数字×1+第九位数字×6+第十位数字×3+十一位数字×7+十二位数字×9+十三位数字×10+十四位数字×5+十五位数字×8+十六位数字×4+十七位数字×2;计算出总和S。
2. 以11对计算结果取模 :Y = S÷ 11
通俗解释:用S除以11,看最后的余数。如果除尽,为0;余数为1,则计为1;最大余数为10;全部数字为0-10共11个数字。(用Y表示)。
3. 根据模的值得到对应的校验码 :对应关系为:
Y值: 0 1 2 3 4 5 6 7 8 9 10
校验码: 1 0 X 9 8 7 6 5 4 3 2
通俗解释:余数为0,则校验码为1;依次类推:余数为1,则校验码对应0;以下:2–X;3–9;4–8;5–7;6–6;7–5;8–4;9-3;10-2。 如果校验码不符合这个规则,则肯定是假号码。
关于18位身份证号码尾数是“X”的解释:因为按照上面的规则,校验码有11个,而不是10个,所以不能用0-9表示。所以如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位,而19位的号码违反了国家标准,并且我国的计算机应用系统也不承认19位的身份证号码。Ⅹ是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。
2
篇八:《身份证编码规则》
当今的身份证号码有15和18位之分。1985年我国实行居民身份证制度,当时签发的身份证号码是15位的,1999年签发的身份证由于年份的扩展(由两位变为四位)和末尾加了效验码,就成了18位。这两种身份证号码将在相当长的一段时期内共存。两种身份证号码的含义如下:
18位的身份证号码:510104196307170239
(1)1~6位为地区代码,其中1、2位数为各省级政府的代码(四川省为51),3、4位数为地、市级政府的代码(成都市为01),5、6位数为县、区级政府代码(锦江区为04)。
(2)7~10位为出生年份(4位),如1963
(3)11~12位为出生月份,如07
(4)13~14位为出生日期,如17
(5)第15~17位为顺序号,为县、区级政府所辖派出所的分配码,每个派出所分配码位10个连续号码,例如“020—029”,其中单数为男性分配码,双数为女性分配码,如遇同年同月同日有两人以上时顺延第二、第三、第四、第五个分配码。
(4)18位为效验位(识别码),通过复杂公式算出,普遍采用计算机自动生成。
15位的身份证号码:
(1)1~6位为地区代码
(2)7~8