Guides

          對guides這個詞認識源于struts文檔,參考、指南,這里是sfilyh 關于CODE的guides。

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

          在做身份證驗證的時候,補習了一下身份證組成規則。突然想到把這些規則組成一個程序。

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

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

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

          看看下面的格式

          15位的身份證號  dddddd yymmdd xx p 

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

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

          下面是國家標準

          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

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

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




           

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

          評論

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


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


          網站導航:
           
          主站蜘蛛池模板: 商丘市| 祥云县| 肇东市| 井陉县| 北辰区| 略阳县| 定南县| 健康| 扬中市| 板桥市| 北辰区| 开化县| 大悟县| 年辖:市辖区| 南澳县| 格尔木市| 东光县| 广宗县| 嘉荫县| 阜宁县| 东城区| 康平县| 蛟河市| 沈阳市| 万宁市| 蒙城县| 华阴市| 汶川县| 高淳县| 呈贡县| 五常市| 湛江市| 延吉市| 东兴市| 景泰县| 娄烦县| 阿鲁科尔沁旗| 贺兰县| 五峰| 襄垣县| 张北县|