#include #include using namespace std;
char cnid18crc(const char *id18); // 身份證 最後一位校驗位
void cnid_15to18(char *id18 , const char *id15); // 身份證 15位公升級18位
int main()
// 身份證 最後一位校驗位
char cnid18crc(const char *id18)
; char w = ;
for (int i = 0; i < 17; i++)
int number = sigma % 11;
cout << w[number] << " ---->\t " << sigma << " mod 11 = " << number << endl ;
return w[number];
}// 身份證 15位公升級18位
void cnid_15to18(char *id18 , const char *id15)
3 * 7 = 21
4 * 9 = 36
0 * 10 = 0
5 * 5 = 25
2 * 8 = 16
4 * 4 = 16
1 * 2 = 2
9 * 1 = 9
8 * 6 = 48
0 * 3 = 0
0 * 7 = 0
1 * 9 = 9
0 * 10 = 0
1 * 5 = 5
0 * 8 = 0
0 * 4 = 0
1 * 2 = 2
x ----> 189 mod 11 = 2
340524800101001
34052419800101001x
// 執行結果,加權因子,校驗碼表
int a = ;
char w = ;
身份證15位公升18位
六位數字位址碼 八位數字出生日期碼 三位數字順序碼 順序碼的奇數分給男性,偶數分給女性 一位數字校驗碼 校驗碼是根據前面十七位數字碼,按照iso 7064 1983.mod 11 2校驗碼計算出來的檢驗碼 1 多了年數 第6位開始多了19表示完整的出生日期 2 多了最後一位校驗碼 ai wi mod...
15位身份證補全為18位身份證演算法
一 15位身份證和18位身份證號碼結構介紹 要進行身份證號碼的驗證,首先需要了解我國身份證號碼的編碼規則。我國身份證號碼多由若干位數字或者數字與字母混合組成。早期身份證由15位數字構成,這主要是在1980年以前發放的身份證,後來考慮到千年蟲問題,因為15位的身份證號碼只能為1900年1月1日到199...
身份證15轉18位
身證份15位轉18位 測試用例用 顯示部分系統人為修改,create function f cid15to18 sfz char 18 returns char 18 asbegin declare osfz varchar 18 declare i int,ai int,wi int,sum in...