Guides

          對guides這個詞認(rèn)識源于struts文檔,參考、指南,這里是sfilyh 關(guān)于CODE的guides。

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            21 隨筆 :: 1 文章 :: 5 評論 :: 0 Trackbacks

          在做身份證驗(yàn)證的時候,補(bǔ)習(xí)了一下身份證組成規(guī)則。突然想到把這些規(guī)則組成一個程序。

          先看看下面一段簡介,人人上看到的 http://blog.renren.com/blog/200883456/730064313,介紹挺全的。

          身份證號碼的編排規(guī)則 
          身份證號碼中這些數(shù)字是怎樣排列的,每個數(shù)字表示什么意思呢?下面就讓我們一起來探索其中的規(guī)律吧!新的身份證號碼是由18位數(shù)字組成的,它們分別表示: 

          (1)前1、2位數(shù)字表示:所在省份的代碼; 
          (2)第3、4位數(shù)字表示:所在城市的代碼; 
          (3)第5、6位數(shù)字表示:所在區(qū)縣的代碼; 
          (4)第7~14位數(shù)字表示:出生年、月、日; 
          (5)第15、16位數(shù)字表示:所在地的派出所的代碼; 
          (6)第17位數(shù)字表示性別:奇數(shù)表示男性,偶數(shù)表示女性; 
          (7)第18位數(shù)字是校檢碼:也有的說是個人信息碼,一般是隨計算機(jī)的隨機(jī)產(chǎn)生, 

          看看下面的格式

          15位的身份證號  dddddd yymmdd xx p 

          18位的身份證號  dddddd yyyymmdd xx p y 

          其中
          dddddd為地址碼(省地縣三級)18位中的和15位中的不完全相同 
          yyyymmdd yymmdd 為出生年月日 
          xx順號類編碼 
          p性別 
          18位中末尾的y為校驗(yàn)碼,將前17位的ascii碼值經(jīng)位移、異或運(yùn)算結(jié)果不在0-9的令其為x 

          下面是國家標(biāo)準(zhǔn)

          18位身份證標(biāo)準(zhǔn)在國家質(zhì)量技術(shù)監(jiān)督局于1999年7月1日實(shí)施的GB11643-1999《公民身份號碼》中做了明確規(guī)定。 
            GB11643-1999《公民身份號碼》為GB11643-1989《社會保障號碼》的修訂版,其中指出將原標(biāo)準(zhǔn)名稱“社會保障號碼”更名為“公民身份號碼”,另外GB11643-1999《公民身份號碼》從實(shí)施之日起代替GB11643-1989。 
            公民身份號碼是特征組合碼,由十七位數(shù)字本體碼和一位校驗(yàn)碼組成。排列順序從左至右依次為:六位數(shù)字地址碼,八位數(shù)字出生日期碼,三位數(shù)字順序碼和一位校驗(yàn)碼。其含義如下: 
            1. 地址碼:表示編碼對象常住戶口所在縣(市、旗、區(qū))的行政區(qū)劃代碼,按GB/T2260的規(guī)定執(zhí)行。 
            2. 出生日期碼:表示編碼對象出生的年、月、日,按GB/T7408的規(guī)定執(zhí)行,年、月、日分別用4位、2位、2位數(shù)字表示,之間不用分隔符。 
            3. 順序碼:表示在同一地址碼所標(biāo)識的區(qū)域范圍內(nèi),對同年、同月、同日出生的人編定的順序號,順序碼的奇數(shù)分配給男性,偶數(shù)分配給女性。 
            校驗(yàn)的計算方式: 
            1. 對前17位數(shù)字本體碼加權(quán)求和 
            公式為:S = Sum(Ai * Wi), i = 0, ... , 16 
            其中Ai表示第i位置上的身份證號碼數(shù)字值,Wi表示第i位置上的加權(quán)因子,其各位對應(yīng)的值依次為: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 
            2. 以11對計算結(jié)果取模 
            Y = mod(S, 11) 
            3. 根據(jù)模的值得到對應(yīng)的校驗(yàn)碼 
            對應(yīng)關(guān)系為: 
             Y值:     0  1  2  3  4  5  6  7  8  9  10 
            校驗(yàn)碼: 1  0  X  9  8  7  6  5  4  3   2

          看完這些信息,能不能寫個程序解決下面這個問題呢。

          Q: 任意給出一個18位身份證號碼的前17位,然后計算出最后一位校驗(yàn)碼




           

          posted on 2011-12-08 15:41 Guides 閱讀(1462) 評論(1)  編輯  收藏 所屬分類: java小試題

          評論

          # re: java小程序之------求18位身份證號碼的最后一位(校驗(yàn)碼) 2013-01-25 14:41 石民浩
          HAO
            回復(fù)  更多評論
            


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 荣成市| 都匀市| 龙山县| 黄冈市| 门源| 牡丹江市| 衡阳县| 汉中市| 昌吉市| 深泽县| 宕昌县| 庆阳市| 扶风县| 噶尔县| 湘潭县| 金湖县| 菏泽市| 乡宁县| 翼城县| 德江县| 永城市| 兰坪| 德格县| 连城县| 尉犁县| 孝感市| 拜城县| 麻城市| 伽师县| 南通市| 洛扎县| 敖汉旗| 屏南县| 盐边县| 大厂| 古交市| 辽源市| 奉化市| 丹阳市| 正镶白旗| 兰溪市|