欢迎访问Qi9电脑知识网学习电脑知识,计算机基础知识,请您记住我们的网址www.Qi9.cn!!
网址导航网站导航 加入收藏加入收藏 设为首页设为首页
内容频道当前位置:Qi9电脑知识网 > 专业知识 > 程序设计教程 > Delphi编程 > 浏览文章

Delphi身份证号码升级为18位

日期:2011年02月11日 来源:Qi9电脑知识网  【字体: 】   阅读:


问题描述:老师说为了积累开发经验,我们应该多看看看别人开发的软件,可我水平有限很多都看不懂,例如老师给我们的15位身份证号码升级为18位身份证计算器,就没有摸到门道,希望得到高人的详细指点。

开发者:软件是经过封装的,但看外观当然看不出门道,你老师的意思是让你们私下研究相关的思路和技术。不过你既然问了,那我就来详细解说其中的门道吧!首先,你要明白18位身份证号码的编码规则:

  第一、二位数字表示省、自治区、直辖市;第三、四位数字表示地区、市、州、盟;第五、六位数字表示县、市、镇、区;第七位至第十四位数字表示身份证持有者的出生年月日;第十五位至第十七位数字是顺序码,顺序码的奇数分配给男性,偶数分配给女性。第十八位数字表示效验码。

  效验码的算法如下:

  S=Ai*Wi,i=1,...,17

  Y=mod(S,11)

  i表示号从右至左不包括效验码字符在内的位置序号;Ai表示第i位置上的身份证号码字符值;Wi表示第i位置上的加权因子。例如某男性公民身份号码本体码为

  510402780502301,S=Σ(Ai×Wi)=(35+9+0+20+0+8+2+9+42+24+0+45+0+10+24+0+2)=230,Y=mod(S,11)=mod(203,11)=20+10/11=10。而10的校验码为2,所以该公民的新身份号码应该为510402197805023012。

本文qi9电脑知识网 版权所有,未经批准转载必究

相关文章



编辑:程伟



热门推荐

相关热门搜索