| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4305 人关注过本帖, 2 人收藏
标题:中华人民共和国行政区划及公民身份证编码规则[仅供参考]
取消只看楼主 加入收藏
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
结帖率:88.24%
收藏(2)
 问题点数:0 回复次数:1 
中华人民共和国行政区划及公民身份证编码规则[仅供参考]
程序代码:
一、中华人民共和国行政区划编码规则
代码从左至右的含义是:
第一、二位表示省(自治区、直辖市、特别行政区)。
第三、四位表示市(地区、自治州、盟及国家直辖市所属市辖区和县的汇总码)。其中,01-2051-70表示省直辖市;21-50表示地区(自治州、盟);90表示省直辖县级行政区划。
第五、六位表示县(市辖区、县级市、旗)。01-20表示市辖区或地区(自治州、盟、省)辖县级市;21-80表示县(旗);81-99表示市辖县级市。
除港澳台外,共有六个行政区

1-华北地区(5):北京市[11]、天津市[12]、河北省[13]、山西省[14]、内蒙古自治区[15]
2-东北地区(3):辽宁省[21]、吉林省[22]、黑龙江省[23]
3-华东地区(7):上海市[31]、江苏省[32]、浙江省[33]、安徽省[34]、福建省[35]、江西省[36]、山东省[37]
4-中南地区(6):河南省[41]、湖北省[42]、湖南省[43]、广东省[44]、广西壮族自治区[45]、海南省[46]
5-西南地区(5):重庆市[50]、四川省[51]、贵州省[52]、云南省[53]、西藏自治区(546-西北地区(5):陕西省[61]、甘肃省[62]、青海省[63]、宁夏回族自治区[64]、新疆维吾尔自治区[65]
综上撰述:直辖市[4]、自治区[5]、省[22] 共31个。
注:[]内数字为直辖市、自治区、省的代码

*-----------------------------------------------------------------------------------
二、18位公民身份证编码规则
  18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999《公民身份号码》中做了明确规定。
  GB11643-1999《公民身份号码》为GB11643-1989《社会保障号码》的修订版,其中指出将原标准名称“社会保障号码”更名为“公民身份号码”,另外GB11643-1999《公民身份号码》从实施之日起代替GB11643-1989。
  公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码。其含义如下:
  1. 地址码:表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。
  2. 出生日期码:表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日分别用4位、2位、2位数字表示,之间不用分隔符。
  3. 顺序码:表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
  校验的计算方式:
  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
  2. 以11对计算结果取模
  Y = mod(S, 11)
  3. 根据模的值得到对应的校验码
  对应关系为:
     Y值: 0 1 2 3 4 5 6 7 8 9 10
  校验码: 1 0 X 9 8 7 6 5 4 3 2
    18位中末尾的Y为校验码。
--------------------------------------------------------
18位身份证号码各位的含义:
1-2位:省、自治区、直辖市代码。以江苏省为例:32表示江苏省(与上面的1-6代表全国行政区域划分有关哦^_^) 。
3-4位:地级市、盟、自治州代码。如:01代表南京市,05代表苏州市。
5-6位:县、县级市、区代码。如:02代表玄武区,11代表浦口区。
7-14位:出生年月日,比如19670401代表1967年4月1日;
15-17位:顺序号,其中17位男为单数,女为双数。
18位:校验码,0-9和X。作为尾号的校验码,是由号码编制单位按统一的公式计算出来的。
举例: 130503 19670401 0016这个身份证号的含义: 13为河北省,05为邢台市,03为桥西区,出生日期为1967年4月1日,顺序号为001,6为校验码。
搜索更多相关主题的帖子: 市辖区 省直辖 行政区划 中华 
2012-09-26 21:17
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用ycvf在2012-10-11 21:44:48的发言:

2. 以11对计算结果取模
  Y = mod(S, 11)
楼主,请举个简单点的应用例子。谢谢
身份证号=[130105197806235619]
AB=7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
用身份证号码的前17位的每一位数字乘以AB中的对应位置的数字,然后将它们相加后取和值:
S=1*7+3*9+0*10+1*5+......+3*5+5*8+6*4+1*2=189 &&这里是假设最后的值为189,没进行计算。
MOD(189,11)=2
     Y值: 0 1 2 3 4 5 6 7 8 9 10
  校验码: 1 0 X 9 8 7 6 5 4 3 2
根据Y值与校验码比对,Y值2对应的校验码为X,最后的第18位校验码应该为X,因此身份证号码的第18位校验码[9]是错误的,正确的校验码应该是[X]

坚守VFP最后的阵地
2012-10-11 22:10
快速回复:中华人民共和国行政区划及公民身份证编码规则[仅供参考]
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022795 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved