以下是18位身份证校验位算法,新浪网骂声一片,不知各位有何看法

MountLion 2001-11-29 09:27:36
>网友 lanix 于 2001-11-27 13:52:12 发表评论
>
>身份证的校验位计算方法
>
>原来身份证为15位
>第一步判断为百岁老人,还是一般人,还是新生儿分别在第六位后面插入18,19,20
>这样身份证为17位
>每一位与其对应的系数相乘
>系数表:
>位数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
>乘数 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
>把相乘之后的结果相加,然后对11取模
>
>得到一个0-10的数字
>
>尾数对应表:
>0 1 2 3 4 5 6 7 8 9 10
>1 0 x 9 8 7 6 5 4 3 2
>
>这样就得出你的18位身份证号

网友的不满主要是针对“对11取模”,得出来的值一位数字无法表示,不得不使用X,造成不便.
...全文
540 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ynhelian 2001-12-05
  • 打赏
  • 举报
回复
不懂!不过新的身份证号码好像是把最后四位都换掉了.
照说,每天在中国的相同省,相同的市(就算是前面的6位只表示到市)每天新出生的人也不会
超出一万人吧?现有身份证号码保留,新出生的人随即给他个号码,既把中国人办身份证的时间提前了18年,也方便了也后信用卡的普及等等,何乐而不为?(现有证件也不涉及到这么麻烦复杂的算法)*_@
viewsea 2001-12-05
  • 打赏
  • 举报
回复
原以为18位身份证号能解决号码重复的问题,后来才知道只不过多了一位校验位。
除了针对瞎编身份证号的情况,其它的没多大用。号码照样重复。

rain_Anda 2001-12-05
  • 打赏
  • 举报
回复
真奇怪,为什么要用这么奇怪的算法,有什么特殊目的吗?不明白!你们知道吗?
MountLion 2001-12-04
  • 打赏
  • 举报
回复
哦,我可能搞错了,应该如liad所言
MountLion 2001-11-30
  • 打赏
  • 举报
回复
比如原号码654321800102987,首先加“19”变成654321 19800102 987
然后
temp=6*4+5*8+4*5+3*10+ ... +8*1+7*2=358;
temp%=11;//6
在“位数对应表”中查,6对应的正好是6,
所以新号码是:654321 19800102 987 6
eWolf 2001-11-30
  • 打赏
  • 举报
回复
难道X就是这么出来的?
liad 2001-11-30
  • 打赏
  • 举报
回复
不是
6*7+5*9+4*10+3*5+...+8*4+7*2
吗?
小乖 2001-11-29
  • 打赏
  • 举报
回复
为什么不好?
yug 2001-11-29
  • 打赏
  • 举报
回复
试试

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧