18位身份證號碼結構的系數算法
阿新 • • 發佈:2017-06-20
身份證號 clas com html con += 得到 math bsp
看了園子裏一個隨筆
http://www.cnblogs.com/10158wsj/p/7050736.html
- 身份證17位數分別乘以不同的系數。從第1位到第17位的系數分別為:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2.
- 將這17位數字和系數相乘的結果相加
- 將step3的結果除以11,得出余數
- 由於數字的特殊性,這些余數只可能是0-10這11個數字,身份證最後一位的對應數字為1-0-X-9-8-7-6-5-4-3-2.。
系數怎麽來的呢?
2^7%11-2^6%11-2^5%11 ......
2的7654321098754321次方%11得到
從最後一位向前,
intm = 0; for (int i = 16;i>-1;i--) { m += (sfz[i] - ‘0‘) * ((int)Math.Pow(2,(17-i)) % 11); } Console.WriteLine(m.ToString() + "," +(12 - m%11).ToString());
18位身份證號碼結構的系數算法