全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:5274
推到 Plurk!
推到 Facebook!

台灣身分證 格式

 
flyup
資深會員


發表:280
回覆:508
積分:385
註冊:2002-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-12-19 11:44:31 IP:61.217.xxx.xxx 未訂閱
身份證字號檢查規則 1.台灣身分證字號共有十碼,我們就將它表示成... N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 2.N1 : 一定是一個大寫英文字母,代表戶籍地 ex.A是台北市 B是台中市 C是基隆市...... 3.N2 : 性別欄位:1為男性 2為女性 4.N3~N9 : 流水號 5.N10 : 檢測位元,首先要將第一個英文字轉換成數值 A=10 B=11 C=12 D=13 E=14 F=15 G=16 H=17 J=18 K=19 L=20 M=21 N=22 P=23 Q=24 R=25 S=26 T=27 U=28 V=29 W=30 X=31 Y=32 Z=33 I=34 O=35 ==>I,O 6.然後用下列算式計算,若餘數為 0 則為正確的身分證字號(N1的十位數 N1的個位數x9 N2x8 N3x7 N4x6 N5x5 N6x4 N7x3 N8x2 N9 N10)÷10 ---------------- 局局棋盤步步新, 變化無常平常待。 人生相處平常心, 無憂無慮心事成。 ---------------- 發表人 - flyup 於 2002/12/19 11:46:01
flyup
資深會員


發表:280
回覆:508
積分:385
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-12-22 23:34:54 IP:61.225.xxx.xxx 未訂閱
國民身份證統一編號計算公式 : 一.先依照上表將英文字母代號換為數字。 二.由左至右,第一位乘一,第二位乘九, 第三位乘八, 第四位乘七....... 最後一位乘一。 三.將各位相對數字所乘之積相加。 四.將上式(三)所得之和除以十求得餘數。 五.以十減去上式(四)所得餘數即為檢查號碼。 範例: F21234567 一.換算為 1521234567 二.(1*1) (5*9) (2*8) (1*7) (2*6) (3*5) (4*4) (5*3) (6*2) (7*1) 三.= 146 四.146/10 = 14 .... 6 五.10 - 6 = 4 (檢查號碼) 心得: 順序加九等於代號 ^^^^^^^^^^^^^^^^^^^^^^^ 字母 A B C D E F G H J K L M N P Q R S T U V X Y W Z I O 順序 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 代號 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ---------------- 局局棋盤步步新, 變化無常平常待。 人生相處平常心, 無憂無慮心事成。 ----------------
flyup
資深會員


發表:280
回覆:508
積分:385
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-12-22 23:36:13 IP:61.225.xxx.xxx 未訂閱
提供一個 Pascal 的程式, 希望有所幫助。 function CorrectIDN(c:string):boolean; const IDNIDX : array['A'..'Z'] of byte = (1,2,3,4,5,6,7,8,25,9,10,11,12,13,26,14,15,16,17,18,19,20,23,21,22,24); IDNTable : array[1..26] of byte = (10,11,12,13,14,15,16,17,18,19,20,21,22, 23,24,25,26,27,28,29,30,31,32,33,34,35); var V:integer; begin if c[1] in ['A'..'Z'] then begin V := IDNTable[IDNIDX[c[1]]] div 10 (IDNTable[IDNIDX[c[1]]] mod 10) * 9 (byte(c[2])-48) * 8 (byte(c[3])-48) * 7 (byte(c[4])-48) * 6 (byte(c[5])-48) * 5 (byte(c[6])-48) * 4 (byte(c[7])-48) * 3 (byte(c[8])-48) * 2 byte(c[9])-48 byte(c[10])-48; CorrectIDN := (c[0] = #10) and ((c[2] = '1') or (c[2] = '2')) and (V div 10 = V / 10); end else CorrectIDN := False; end; ---------------- 局局棋盤步步新, 變化無常平常待。 人生相處平常心, 無憂無慮心事成。 ----------------
flyup
資深會員


發表:280
回覆:508
積分:385
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-12-22 23:38:24 IP:61.225.xxx.xxx 未訂閱
身份證驗證程式---C 語言程式    #include 〈ctype.h〉 #include 〈iostream.h〉 #include 〈string.h〉    int  CheckID(char *);    void  main(void) {    char  inbuf[80];    cout << "  A123456789    \n: "    cin >> inbuf;    cout << (CheckID(inbuf) ? "ok" : "invalid") << endl; }  /* main */    int  CheckID(char *s) {    char  *p, *LEAD="ABCDEFGHJKLMNPQRSTUVXYWZIO"    if (strlen(s)!=10 || (p=strchr(LEAD, toupper(*s)))==NULL)      return  NULL;    int x = p - LEAD;    x = x/10 + x*9;    p = s + 1;    if (*p!='1' && *p!='2')  return  NULL;    for(int i=1; i<9; i ) if (isdigit(*p)) x = (*p -'0')*(9-i); else return NULL; x = 9 - x; return (x==*p-'0'); } /* CheckID */ ---------------- 局局棋盤步步新, 變化無常平常待。 人生相處平常心, 無憂無慮心事成。 ---------------- 發表人 - flyup 於 2002/12/22 23:41:03
00156
高階會員


發表:45
回覆:195
積分:112
註冊:2002-06-01

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-01-11 11:56:02 IP:61.56.xxx.xxx 未訂閱
這裡還有一個函數,希望有幫助囉...
function CkIDNum(idn:string):boolean;
const LetterCode:array[0..25] of byte = (10,11,12,13,14,15,16,17,34,18,19,20,21,22,35,23,24,25,26,27,28,29,32,30,31,33);
var cksum:integer;
    i:ShortInt;
{ *Note:   男生=第二碼為1 (即字母後的那一位)
           女生=第二碼為2 (即字母後的那一位) }
begin
  Result:=false;
  if length(idn)<>10 then Exit; //驗證總位數
  i:=Ord(UpCase(idn[1]))-65; //驗證首位字母...(取得對應值在LetterCode的位置、確認為A~Z之一、計算加權值)
  if ((i<0) or (i>25)) then Exit;
  cksum:=(LetterCode[i] div 10)   (9*LetterCode[i] mod 10);
  for i:=1 to 8 do cksum:=cksum StrToInt(idn[i 1])*(9-i); //數字部份加權加總
  if (cksum StrToInt(idn[10])) mod 10 = 0 then Result:=true; //驗證檢碼(最後一碼):與cksum的和必須被10整除
end;
系統時間:2024-05-13 6:51:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!