下面是引用小金钢于2007-03-13 20:23发表的 用MATLAB写身分证验证码:
求语言程式及注解
复制程式
身份证字号编码公式 (台湾适用)
内容:
教学>身份证字号编码公式
身份证字号 共有十码, 以下是位置说明,仅供各位参考
N1N2N3N4N5N6N7N8N9N10
户籍性别~流~~~~~~~~水~~~~~~~~~~~码~
代表说明
户籍代表字母
A台北市 B台中市 C基隆市 D台南市 E高雄市 F台北县
G宜兰县 H桃园县 I嘉义市 J新竹县 K苗栗县 L台中县
M南投县 N彰化县 O新竹市 P云林县 Q嘉义县 R台南县
S高雄县 T屏东县 U花莲县 V台东县 W金门县 X澎湖县
Y阳明山 Z连江县
英文字母代表的数字
A=10 B=11 C=12 D=13 E=14 F=15 G=16 H=17 I=34 J=18 K=19 L=20
M=21 N=22 O=35 P=23 Q=24 R=25 S=26 T=27 U=28 V=29 W=32 X=30
Y=31 Z=33
性别代表数字
1:男性
2:女性
步骤
1. 查出英文字所代表的数字
再将所查出的数字 "十位数+个位数x9"
例: 台北市=10 => 1 + 0x9 =1
台中市=11 => 1 + 1x9 =10
2. N2x8+N3x7+N4x6+N5x5+N6x4+N7x3+N8x2+N9+N10
将流水码依序乘8765432
一个个乘.乘完要加起来.(别忘了先乘除后加减)
例: 123456789 => 1x8+2x7+3x6+4x5+5x4+6x3+7x2+8+9
3.将步骤1 和步骤2 的两个数加起来除以10.
例:步骤1 台北计算结果 =1
步骤2 1x8+2x7+3x6+4x5+5x4+6x3+7x2+8+9 =129 (1+129)/10
除10后看看是否可以整除.如可以整除即为正确的
身份证字号. 如无法整除即是错误的身份证字号
(1+129)/10 = 13 => 可以整除.正确
PS:以上资料来自『洪X』...感恩那边的大大XD
这个是它的计算方法...
希望对你有用XD