線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1316
推到 Plurk!
推到 Facebook!

C計算檢查碼的Function轉Delphi問題

答題得分者是:jessechan
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-18 11:25:37 IP:203.204.xxx.xxx 未訂閱
The following file contains the C code for figuring the subscriber access card’s check digit: /******************************************************* *****/ USHORT ND_CheckDigit(ULONG long_id) { BYTE dbg[20]; USHORT check; USHORT subtotal; USHORT i; USHORT times; sprintf(dbg, “ld”, long_id); check = 0; times = 1; for (i=0; i<8; i ) { subtotal = (dbg[i]-’0’)*times; subtotal = (subtotal / 10) (subtotal % 10); check = subtotal; if (times==1) times=2; else times=1; } check = 10 - (check % 10); if (check == 10) check = 0; return(check); }/* ND CHECK DIGIT */ 以上是Function的內容,想問一下幾個不懂的地方 1.sprintf(dbg, “ld”, long_id);這一行是做什麼 2.subtotal = (dbg[i]-’0’)*times;這一行是什麼意思 3.%是求餘數對嗎? 4.check = subtotal;就是check = check subtotal; 以上,敬請指教,謝謝!
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-18 12:48:02 IP:203.75.xxx.xxx 未訂閱
這應該是一個求卡號檢查碼的 funciton, 1.sprintf(dbg, “ld”, long_id);這一行是做什麼 把一個用長整數儲存的卡號轉成字串 2.subtotal = (dbg[i]-’0’)*times;這一行是什麼意思 如果是第 0,2,4,6, 個數字的值乘以 1, 第 1,3,5,7 個數字乘以 2, 以此結果做 checksum 3.%是求餘數對嗎? yes 4.check = subtotal;就是check = check subtotal; yes again Jesse Chan
------
Jesse Chan
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-18 13:26:47 IP:203.204.xxx.xxx 未訂閱
引言: 這應該是一個求卡號檢查碼的 funciton, 1.sprintf(dbg, “ld”, long_id);這一行是做什麼 把一個用長整數儲存的卡號轉成字串 2.subtotal = (dbg-’0’)*times;這一行是什麼意思 如果是第 0,2,4,6, 個數字的值乘以 1, 第 1,3,5,7 個數字乘以 2, 以此結果做 checksum 3.%是求餘數對嗎? yes 4.check = subtotal;就是check = check subtotal; yes again [i]Jesse Chan
感謝jessechan兄: 果然和我猜的差不多,不過我算出來有問題才上來問,經過檢查就差在如下: subtotal := Round(subtotal / 10) (subtotal mod 10); 原來除完後不可四捨五入,改為以下即可 subtotal := subtotal div 10 (subtotal mod 10); 以上為Delphi語法 再次感謝jessechan兄
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
系統時間:2024-05-06 4:13:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!