青青草免费线看线看|啊在车上停不下来了|国产少女免费观看电视剧|仑乱88MAV|精品老司机在线观看视频|国产一区二区三区高清免费视频|在线观看免费777av

身份證15位升18位的規(guī)則是什么?


身份證15位升18位的規(guī)則是什么?


15位升18的方法 根據(jù)〖中華人民共和國國家標準 GB 11643-1999〗中有關(guān)公民身份號碼的規(guī)定,公民身份號碼是特征組合碼,由十七位數(shù)字本體碼和一位數(shù)字校驗碼組成 。排列順序從左至右依次為:六位數(shù)字地址碼,八位數(shù)字出生日期碼,三位數(shù)字順序碼和一位數(shù)字校驗碼 。地址碼表示編碼對象常住戶口所在縣(市、旗、區(qū))的行政區(qū)劃代碼 。生日期碼表示編碼對象出生的年、月、日,其中年份用四位數(shù)字表示,年、月、日之間不用分隔符 。順序碼表示同一地址碼所標識的區(qū)域范圍內(nèi),對同年、月、日出生的人員編定的順序號 。順序碼的奇數(shù)分給男性,偶數(shù)分給女性 。校驗碼是根據(jù)前面十七位數(shù)字碼,按照ISO 7064:1983.MOD 11-2校驗碼計算出來的檢驗碼 。下面舉例說明該計算方法 。15位的身份證編碼首先把出生年擴展為4位,簡單的就是增加一個19,但是這對于1900年出生的人不使用(這樣的壽星不多了) 某男性公民身份號碼本體碼為34052419800101001,首先按照公式⑴計算: ∑(ai×Wi)(mod 11)……………………………………(1) 公式(1)中: i----表示號碼字符從由至左包括校驗碼在內(nèi)的位置序號; ai----表示第i位置上的號碼字符值; Wi----示第i位置上的加權(quán)因子,其數(shù)值依據(jù)公式Wi=2(n-1)(mod 11)計算得出 。i 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 ai 3 4 0 5 2 4 1 9 8 0 0 1 0 1 0 0 1 a1 Wi 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1 ai×Wi 21 36 0 25 16 16 2 9 48 0 0 9 0 5 0 0 2 a1 根據(jù)公式(1)進行計算: ∑(ai×Wi) =(21+36+0+25+16+16+2+9+48++0+0+9+0+5+0+0+2) = 189 189 ÷ 11 = 17 + 2/11 ∑(ai×Wi)(mod 11) = 2 然后根據(jù)計算的結(jié)果,從下面的表中查出相應的校驗碼,其中X表示計算結(jié)果為10: ∑(ai×WI)(mod 11) 0 1 2 3 4 5 6 7 8 9 10 校驗碼字符值ai 1 0 X 9 8 7 6 5 4 3 2 根據(jù)上表,查出計算結(jié)果為2的校驗碼為所以該人員的公民身份號碼應該為 34052419800101001X 。C#代碼: private string per15To18(string perIDSrc) { int iS = 0; //加權(quán)因子常數(shù) int[] iW=new int[]{7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2}; //校驗碼常數(shù) string LastCode="10X98765432"; //新身份證號 string perIDNew; perIDNew=perIDSrc.Substring(0,6); //填在第6位及第7位上填上‘1’,‘9’兩個數(shù)字 perIDNew += "19"; perIDNew += perIDSrc.Substring(6,9); //進行加權(quán)求和 for( int i=0; i<17; i++) { iS += int.Parse(perIDNew.Substring(i,1)) * iW[i]; } //取模運算,得到模值 int iY = iS%11; //從LastCode中取得以模為索引號的值,加到身份證的最后一位,即為新身份證號 。perIDNew += LastCode.Substring(iY,1); return perIDNew; }
【身份證15位升18位的規(guī)則是什么?】

    猜你喜歡