公民身份号码是由17位数字码和1位校验码组成。排列顺序从左至右分别为:6位地址码,8位出生日期码,3位顺序码和1位校验码。 地址码(身份证地址码对照表见下面附录)和出生日期码很好理解,顺序码表示在同一地址码所标识的区域范围内,隐樱罩对同年同月同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。 身份证最后一位校验码算法如下: 1.将身份证号码前17位数分别乘以不同的系数,从第1位到第17位的系灶闹数分别为:7910584216379105842 2.将得到的17个乘积相加。 3.将相加后的和除以11并得到余数。 4.余数可能为012345678910这些个数字,其对应的身份证最后一位校验码为10X98765432。 校验码计算公式: 公式①中: i表示号码字符从由至左包括校验码在内的位置序号; Ai表示第i位置上的号码字符值; Wi示第i位置上的加权因数。 加权因数的集合为{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1} v={1,0,X,9,8,7,6,5,4,3,2} 最后一位的校验位就是集合v中的第m个元素的值。 下面举例算一个: 随便一个号码,如济南市市辖区的某位出生于1901年02月03日的男性公民身份号码前11位(也就是本体码)为37010119010203997,首先按照公式⑴计算: 然后根据计算的结果,从集合v中查出相应的校验码,其中X表示10: 根据集合v,查出计算结果为9的校验码3为所以该人员的公民身份号码应该为370101190102039973。 说下余数的算法。一、两个异号整数求余 1.函数值符号规律(余数的符号)mod(负,正)=正mod(正,负)=负 结论:两个整数求余时,其值的符号为除数的符号。 2.取值规律先将两个整数看作是正数,再作除法运算 ①能整除时,其值为0 ②不能整除时,其值=除数×(整商+1)-被除数 例:mod(36,-10)=-4即:36除以10的整数商为3,加1后为4;其与除数之积为40;再与被除数之差为(40-36=4);取除数的符号。所以值为-4。 二、两个小数求余取值规律: 被除数-(整商×除数)之后在第一位小数位进行四舍五入。 例:mod(9,1.2)=1即:9除1.2其整商为7;7与除数1.2之积为8.4;8.4四舍五入之后为8;被除数9与8之差为1。颂并故结果为1。 例:mod(9,2.2)=0即:9除2.2其整商为4;4与除数2.2这积为8.8;8.8四舍五入之后为9;被除数9与之差为0,故结果为0.
标签:公式,效验,身份证